C# 错误消息';此操作系统不支持指定的区域设置;
我使用以下方法创建数据库文件C# 错误消息';此操作系统不支持指定的区域设置;,c#,.net,windows,sql-server-ce,C#,.net,Windows,Sql Server Ce,我使用以下方法创建数据库文件 public bool CreateDatabaseFile() { try { Stream file = File.Create(DBPath); file.Close(); return true; } catch (Exception) { return false; } } 但是当我打电话的时候 public void CreateDatab
public bool CreateDatabaseFile()
{
try
{
Stream file = File.Create(DBPath);
file.Close();
return true;
}
catch (Exception)
{
return false;
}
}
但是当我打电话的时候
public void CreateDatabaseStruct()
{
var queries = new List<string>
{
"create table contacts (\"name\" nvarchar,\"emails\" nvarchar);",
"create table errors (\"code\" int, message nvarchar);"
};
foreach (string query in queries)
{
var con = new SqlCeConnection(connectionString);
con.Open();
var cmd = con.CreateCommand();
cmd.CommandText = query;
cmd.ExecuteNonQuery();
con.Close();
}
}
是否通过LCD=#####
在字符串中指定a(其中#####是支持的4位LCID号)?如果是,您确定您的操作系统支持它吗
如果没有,可能您的操作系统设置为不同的区域性,而数据库不支持这种区域性
请发布您的连接字符串,并提供有关您正在使用的操作系统的更多信息(如@MusiGenesis所述)。解决方案是使用创建连接字符串。问题可能在于您的连接字符串。你能发布它,并说出你在什么(Windows Mobile或普通Windows)上运行它吗?你能试着通过调试器运行它吗。查看它在哪个查询上失败。另外,我注意到您没有在
errors
表中的message
列周围加引号。这可能不是一个问题,因为我不相信这是一个关键字,但我只是想知道为什么您只省略了该列的引号。@MusiGenesis:在常规窗口上。连接字符串现在已发布。查看我的更新。遗漏引号是打字错误。我修复了它,再次尝试运行,返回相同的错误。我发布了我的连接字符串。查看我的更新。如果使用linqpad创建.mdf文件,效果会很好。我相信错误在于我通过C#创建.mdf文件的模式。
public static readonly string DBPath = "db.sdf";
public static readonly string connectionString = String.Format("Data Source={0}; Password=...", DBPath);