我想通過從數據庫中選擇一個特定的記錄並在文本框中顯示它,然後單擊一個按鈕來更新從文本框輸入的編輯更新我的數據庫。 但是,當我嘗試通過獲取受影響的行數來檢查數據庫中是否存在記錄時,它始終顯示爲0. 有人可以幫我弄清楚這是爲什麼?如何更新從c中的文本框輸入訪問數據庫#
private void button3_Click(object sender, EventArgs e)
{
string ghost1 = textBox1.Text.ToString();
string ghost2 = textBox2.Text.ToString();
string ghost3 = textBox3.Text.ToString();
string ghost4 = textBox4.Text.ToString();
OleDbConnection conn = new OleDbConnection();
conn.ConnectionString = @"Provider=Microsoft.JET.OLEDB.4.0;Data Source=C:\Users\jameschoi\Desktop\andrew.mdb";
conn.Open();
//OleDbDataReader myReader = null;
OleDbCommand command = new OleDbCommand("SELECT * FROM Stock WHERE SKU ='" + ghost1 + "'", conn);
OleDbCommand combank = new OleDbCommand("INSERT INTO Stock (Description, Qty, Price) VALUES ('" + ghost2 + "', '" + ghost3 + "', '" + ghost4 + "')", conn);
int frango = command.ExecuteNonQuery();
string test1 = frango.ToString();
command.ExecuteNonQuery();
try
{
if (frango > 0)
{
combank.ExecuteNonQuery();
MessageBox.Show("Update Successful");
conn.Close();
}
else
{
MessageBox.Show("Record does not exist");
}
}
catch (Exception ex)
{
MessageBox.Show("Failed due to" + ex.Message);
}
finally
{
conn.Close();
DataSet_update();
}
}
可以肯定的是,在調用ExecuteNonQuery()之前,'SELECT * FROM Stock WHERE SKU ='「+ ghost1 +」''看起來像什麼?一個簡單的空白可以毀掉所有的東西.. –
總是使用SQL參數,而不是將SQL粘在一起。除此之外,你正在將我認爲是數字(數量,價格)作爲文本傳遞。此外,文本屬性是'字符串'開始 - 'ToString()'是毫無意義的 – Plutonix
@BagusTesa我不明白你的意思?如果你的意思是'ghost1 +'之間的空格,我嘗試過'+ ghost1 +',然後frango仍然出現在0. – Icecubelegacy