2013-10-09 70 views
-1

當我運行我的程序時,sql命令進入table.executenonquery並停下來,它加載程序接口並且沒有其他事情發生?我查看了數據庫,並沒有添加我需要的表格。這裏是我的代碼:sql看似中途停止?

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或的ExecuteScalar(不知道的差異),但我曾經嘗試都

謝謝你們

+0

你爲什麼要在表單加載中創建登錄表? –

+0

,因爲我似乎無法創建表和數據庫,並在我的程序中引用它們,然後發佈它在其他計算機上使用,該程序不會找到數據庫,所以我想我會使數據庫時,用戶(無論誰是)第一次打開程序 –

+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,令牌出錯=)]「}」告訴你確切的問題。儘管如此,當用戶嘗試創建一個已經存在的數據庫文件時,第二次用戶運行該應用程序時,這總是會失敗。

+0

謝謝!我不相信我錯過了!想想,一個專門負責這個東西的團隊沒有注意到它,只是扯下了嘴巴。謝謝你! –