在LINQ&amp ;;中使用CreateDatabase方法创建数据库。 C#?

时间:2009-10-17 11:00:35

标签: c# linq

我正在使用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字符,如下所示:اقلام_فروخته_شده

你可以指导我吗? 感谢。

1 个答案:

答案 0 :(得分:2)

StaticVariables.DBFolder包含一个或多个非法的Win32路径字符。

你可以使用

System.IO.Path.GetInvalidPathChars()
System.IO.Path.GetInvalidFileNameChars()

检查哪些字符不被允许,然后从StaticVariables.DBFolder变量中删除

还要确保dbc.Mapping.DatabaseName不包含任何这些字符