我正在使用以下方法创build数据库文件。
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 – 1]不支持指定的区域设置。
我该如何解决?
UPDATE
连接string:
public static readonly string DBPath = "db.sdf"; public static readonly string connectionString = String.Format("Data Source={0}; Password=...", DBPath);
解决方案是使用SqlCeEngine.CreateDatabase()创建它。
您是否在连接字符串中通过LCD=####
(其中####是支持的4位LCID编号)指定区域设置ID ? 如果是这样,你确定它在你的操作系统上受支持吗?
如果没有,也许你的操作系统设置为不同的文化,这是不支持的数据库。
请张贴您的连接字符串,并提供一些关于您正在使用的操作系统的更多信息(如@MusiGenesis所述)。