-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) に到達し、停止します。死。参考までに、そのexecutenonqueryかexecutecalarかはわかりませんが(違いはわかりません)、両方を試しました

みんなありがとう

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))"

アプリケーションは「ただ停止する」だけではなく、「{"クエリの解析中にエラーが発生しました。[ Token line number = 1,Token line offset = 82,Token in error = ) ]"}"正確な問題を伝えます。

そうは言っても、ユーザーがアプリを 2 回目に実行するとき、既に存在するデータベース ファイルを作成しようとすると、これは必ず失敗します。

于 2013-10-09T00:42:03.667 に答える