0
這很簡單,但我看不出錯在哪裏!該參數未添加到查詢中。這裏是我的代碼:C# - SQLite提供給命令錯誤的參數不足
SQLiteDB db;
db = new SQLiteDB(Config.getMasterUsersDB());
DataTable masterUsers;
SQLiteCommand query = new SQLiteCommand("SELECT username , password , localDB FROM master_users WHERE username = @username");
query.Parameters.Add("@username", comboMasterUsers.SelectedItem.ToString());
masterUsers = db.GetDataTable(query.CommandText);
foreach (DataRow r in masterUsers.Rows)
{
if (txtPassword.Text == r["password"].ToString())
{
Config.setLocalDB(r["localDB"].ToString());
Config.setLoggedMasterUser(r["username"].ToString());
this.Hide();
formMain formMain = new formMain();
formMain.Show();
}
}
SQLiteDB是一個輔助類,使數據庫連接和檢索
public DataTable GetDataTable(string sql)
{
DataTable dt = new DataTable();
try
{
SQLiteConnection cnn = new SQLiteConnection(dbConnection);
cnn.Open();
SQLiteCommand mycommand = new SQLiteCommand(cnn);
mycommand.CommandText = sql;
SQLiteDataReader reader = mycommand.ExecuteReader();
dt.Load(reader);
reader.Close();
cnn.Close();
}
catch (Exception e)
{
throw new Exception(e.Message);
}
return dt;
}
,爲什麼我會提供給命令錯誤的參數不足?我也看不到任何錯別字。
謝謝你,偉大的答案。所以這些參數不會被添加到commandText中?我認爲它是這樣做的,所以我然後將commandText發送到GetDataTable。 – JackM36
參數繞過任何解析並分別傳遞到數據庫(否則,blob將不起作用)。 –