簡體   English   中英

在MS Access c#中更新多行

[英]Updating Multiple rows in MS Access c#

我正在嘗試更新MS Access數據庫中的多行,但是每次它給出更新語法錯誤時,這是​​我的代碼

cn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source =C:\\Users\\Kalpesh\\Desktop\\Entry.accdb");
sqlstr = "Update Members SET Name=@Name, MobileNo=@MobileNo, Password=@Password, IDType=@IDType, IDNo=@IDNo, AmountPaid=@AmountPaid, Address=@Address, Reg Date = "+DateTime.Now.ToShortDateString()+" WHERE UserName = '" + comboBox4.SelectedItem.ToString() + "'",cn);
cmd = new OleDbCommand(sqlstr, cn);
cmd.Parameters.AddWithValue("@Name", textBox19.Text.ToString());
cmd.Parameters.AddWithValue("@MobileNo", textBox14.Text.ToString());
cmd.Parameters.AddWithValue("@Password", textBox17.Text.ToString());
cmd.Parameters.AddWithValue("@IDType", comboBox5.SelectedItem.ToString());
cmd.Parameters.AddWithValue("@IDNo", textBox11.Text.ToString());
cmd.Parameters.AddWithValue("@AmountPaid", textBox16.Text.ToString());
cmd.Parameters.AddWithValue("@Address", richTextBox3.Text.ToString());

cn.Open();
cmd.CommandType = CommandType.Text;
cmd.ExecuteNonQuery();
MessageBox.Show("Record Updated");
cn.Close();

NamePassword是MS Access中的保留關鍵字

如果已經使用了保留字,則可以在每次出現該字時用方括號( [ ] )來避免出現錯誤消息。 但是,最好的解決方案是將名稱更改為非保留字

您還需要將Reg Date與方括號一起使用,例如[Reg Date]因為它有空格。 就像其他列一樣,對“ Reg Date和“ UserName列值進行參數化。 喜歡;

... [Reg Date] = @reg WHERE UserName = @user ...
cmd.Parameters.AddWithValue("@reg", DateTime.Now.ToShortDateString());
cmd.Parameters.AddWithValue("@user", comboBox4.SelectedItem.ToString());

也可以使用using語句來處理OleDbConnectionOleDbCommand

string conString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source =C:\\Users\\Kalpesh\\Desktop\\Entry.accdb";
using(OleDbConnection cn = new OleDbConnection(conString))
using(OleDbCommand cmd = cn.CreateCommand())
{
  // Do your work..
}

由於沒有關於語法問題的明確錯誤消息,我猜想它在日期前后缺少單引號,請嘗試以下操作:

RegDate = '"+DateTime.Now.ToShortDateString()+"'

問題在這里

 "Reg Date = "+DateTime.Now.ToShortDateString()+"

嘗試這個

 "[Reg Date] = #" + DateTime.Now.ToShortDateString() + "# "

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM