-1

当我运行我的程序时,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)并停止。死的。仅供参考,我不确定它是执行非查询还是执行标量(不确定区别),但我都尝试过

多谢你们

4

1 回答 1

1

您的 create 语句失败,因为您缺少结束括号

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,令牌错误 = ) ]"}" 告诉你确切的问题。

话虽如此,当用户第二次运行应用程序时,当它试图创建一个已经存在的数据库文件时,这总是会失败。

于 2013-10-09T00:42:03.667 回答