当我运行我的程序时,sql命令到达table.executenonquery并且只是停止,它加载程序界面而没有其他事情发生?我查看了数据库,但没有添加我需要的表格。这是我的代码:
private void loginForm_Load(object sender, EventArgs e)
{
string connectionString = "DataSource=\"Event Control.sdf\"";
SqlCeEngine en = new SqlCeEngine(connectionString);
en.CreateDatabase();
string createTable = "CREATE TABLE Login (userName nvarchar(50), Salt nvarchar(100), Hash nvarchar(100)";
string connection = "Data Source = Event Control.sdf";
SqlCeConnection connexion = new SqlCeConnection(connection);
SqlCeCommand table = new SqlCeCommand(createTable, connexion);
try
{
connexion.Open();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
table.ExecuteNonQuery();
connexion.Close();
}
它到达终点(table.ExecuteNonQuery)并停止。死。还有,我不确定它是执行者还是执行者(不确定区别)但是我已经尝试了两者
谢谢你们
答案 0 :(得分:1)
您的创建语句失败,因为您缺少结束语
string createTable = "CREATE TABLE Login (userName nvarchar(50), Salt nvarchar(100), Hash nvarchar(100)"
应该是
string createTable = "CREATE TABLE Login (userName nvarchar(50), Salt nvarchar(100), Hash nvarchar(100))"
您的应用程序不会“只是停止”它会抛出一个异常消息“{”解析查询时出错。 [令牌行号= 1,令牌行偏移= 82,令牌错误=)]“}”告诉您确切的问题。
话虽如此,当用户第二次尝试创建已经存在的数据库文件时,这总是会失败。