好的,从昨晚深夜到今天凌晨,我一直在做这件事。我正在尝试将一些数据插入 SQL Server CE 数据库。我已经走到了尽头。
这是我要实现的代码:
public static void InsertData(string sqlStatement)
{
try
{
//string strConn = AppDomain.CurrentDomain.GetData("DataDirectory").ToString();
//string StartupPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().GetName().CodeBase).Remove(0, 6); // remove file:\\
//string connectionString = @"Data Source=Database1.sdf";
//string connectionString = @"Data Source = |DataDirectory|\Database1.sdf";
//string connectionString = @"Data Source = C:\Users\My\Documents\Visual Studio 2012\Projects\VIN_Decoder\VIN Decoder\VIN Decoder\Database1.sdf"
//string connectionString = string.Format("Data Source={0}; Persist Security Info=False;", Path.Combine(Application.StartupPath, "Database1.sdf"));
//THIS ONE ACTUALLY WORKS!!!!!!!!!!!! :
//string connectionString = @"Data Source = C:\Users\My\Documents\Visual Studio 2012\Projects\VIN_Decoder\VIN Decoder\VIN Decoder\Database1.sdf"
string connectionString = Properties.Settings.Default.Database1ConnectionString;
SqlCeConnection sqlceCon = new SqlCeConnection(connectionString);
sqlceCon.Open();
SqlCeCommand sqlCeCom = new SqlCeCommand(sqlStatement, sqlceCon);
sqlCeCom.ExecuteNonQuery();
sqlCeCom.Dispose();
sqlceCon.Close();
}
catch (Exception e)
{
}
}
您可以查看所有已注释的连接字符串以了解我尝试过的内容。奇怪的是,我可以简单地在另一种方法(SELECT 语句,而不是 INSERT INTO 语句)中使用以下连接字符串,该方法从数据中获取单个值并且工作正常。
string connectionString = @"Data Source = |DataDirectory|\Database1.sdf";
我已经直接测试了查询,就像评论说的那样,静态路径确实有效,因此告诉我我的查询很好。但是,我当然需要一些相对于发布和多开发人员开发的东西。
我尝试过的大多数连接字符串都允许 try 块在没有错误的情况下完成,但不会插入数据。
有什么建议么?