public partial class Screen1
{
public static string sPath = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase.ToString());
public const string FILENAME = "\\Database.sdf";
public static SqlCeConnection SqlCeCon;
void Button_Click(System.Object sender, System.EventArgs e)
{
string sCeConStr = Screen1.sPath + Screen1.FILENAME;
Screen1.SqlCeCon = new SqlCeConnection("Data Source =" + sCeConStr);
Screen1.SqlCeCon.Open();
MessageBox.Show("database connect succeed!");//程序运行到这里是OK的,就是说连接数据库没问题,但执行下面数据库操作语句时出错。移动设备自动重启,移动设备为WINCE系统。用的是C#编程。
SqlCeCommand TemClear=new SqlCeCommand("Delete tem",SqlCeCon);
SqlCeCommand TemInsert=new SqlCeCommand(@"insert into tem(Time,LogItem1) select Time,
LogItem1 from DataLogger1Where id='"+Globals.Tags.Tag1.Value+"'",SqlCeCon);
TemClear.ExecuteNonQuery();
TemInsert.ExecuteNonQuery();
}
------解决思路----------------------
你这一句public static string sPath = System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase.ToString()
应该取得程序集的url,得出的结果应该类似于file:///x:/ab/cd/de.exe,
然后你的public const string FILENAME = "\\Database.sdf";
结果取得string sCeConStr = Screen1.sPath + Screen1.FILENAME;
这两句拼起来取得的将是file:///x:/ab/cd/de.exe/Database.sdf这样的结果,这样对吗?
------解决思路----------------------
catch(SqlCeException)
{"Attention:Failed to execute SQL statements!"}
不要这样写,你这样将错误信息隐藏起来,只显示个失败,就没有办法调试了
改成这样:
catch(SqlCeException ex)
{
ex.ToString();
}