我正在使用LINQ to SQL。我想用LINQ创建一个数据库,但发生了以下异常: 路径中的非法字符。
这是我的代码:
public static string DBFolder = Application.StartupPath + "\\SQL\\";
private void MainForm_Load(object sender, EventArgs e)
{
if (!Directory.Exists(StaticVariables.DBFolder))
Directory.CreateDirectory(StaticVariables.DBFolder);
using (RezaRestaurant.SQL.DataClasses1DataContext dbc = new RezaRestaurant.SQL.DataClasses1DataContext())
{
if (!File.Exists(StaticVariables.DBFolder + dbc.Mapping.DatabaseName + ".mdf") && !dbc.DatabaseExists())
{
RezaRestaurant.SQL.DataClasses1DataContext db = new RezaRestaurant.SQL.DataClasses1DataContext(StaticVariables.DBFolder + dbc.Mapping.DatabaseName + ".mdf", dbc.Mapping.MappingSource);
db.CreateDatabase();//Exception
}
}
}
BTW:我在数据库表中使用了UFT8字符,如下所示:اقلام_فروخته_شده
你可以指导我吗? 感谢。答案 0 :(得分:2)
StaticVariables.DBFolder包含一个或多个非法的Win32路径字符。
你可以使用
System.IO.Path.GetInvalidPathChars()
System.IO.Path.GetInvalidFileNameChars()
检查哪些字符不被允许,然后从StaticVariables.DBFolder变量中删除
还要确保dbc.Mapping.DatabaseName
不包含任何这些字符