2017-03-01 56 views
0

我想創建與統一的sqlite登錄。但是當我點擊登錄按鈕時,我得到了sqlite異常:sqlite error。 你能幫我解決這個問題嗎?unity3d sqlite錯誤提供給命令的參數不足

public void login(){ 
    var sql_login = "SELECT username,password FROM my_users WHERE username = @login_username AND password = @login_password;"; 
    SqliteCommand createCommand = new SqliteCommand (sql_login, dbCon); 
    using (var cmd = dbCon.CreateCommand()) { 
     cmd.CommandText = sql_login; 
     cmd.Parameters.AddWithValue("@login_username",login_username.text); 
     cmd.Parameters.AddWithValue("@login_password",login_password.text); 
     cmd.ExecuteNonQuery(); 

     SqliteDataReader dr = createCommand.ExecuteReader(); 
     int count = 0; 

     while(dr.Read()){ 
      count++; 
     } 

     if(count == 1){ 
      Application.LoadLevel("Succes"); 
     } 

     if(count > 1){ 
      print("Duplicate"); 
     } 

     if(count < 1){ 
      print("Not Found"); 
     } 

    } 
} 
+1

你爲什麼要使用兩個命令對象? –

+0

我不知道...我只是想在var sql_login中運行查詢...當條件查詢被發現時我想去Application.LoadLevel(「succes」)...請更正我 –

回答

1

您有兩個命令對象;您將參數設置爲一個,但從另一個讀取。

只需使用一個單一的一個:

using (var cmd = dbCon.CreateCommand()) { 
    cmd.CommandText = sql_login; 
    cmd.Parameters.AddWithValue("@login_username", login_username.text); 
    cmd.Parameters.AddWithValue("@login_password", login_password.text); 
    SqliteDataReader dr = cmd.ExecuteReader(); 
    ... 
+0

謝謝你的腳本......現在一切正常...非常感謝 –

相關問題