首先,我使用MS Access OleDb,我尝试了多次使用和不使用UPDATE
SQL查询的参数。
照片更新事情不是现在的事实,当我尝试更新按钮时我得到:
标准表达式中的数据类型不匹配。
那个错误让我发疯,请帮助我。谢谢!
ktN
来自KayitNo
作为Public Int32
来自标题,当我点击数据网格进行更新时(在此期间检索其他列到文本框和datetimePickers等)。
OleDbConnection con = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=TSP.accdb");
OleDbCommand komut = new OleDbCommand("UPDATE TSP_Data SET SeriNo=@SeriNo,PartNo=@PartNo,PID=@PID,Model=@Model,UretimTarihi=@UretimTarihi,Teknisyen=@Teknisyen,ServisGiris=@ServisGiris,Ariza=@Ariza,TeknisyenNotu=@TeknisyenNotu,YapilanIslem=@YapilanIslem,MudahaleSonucu=@MudahaleSonucu,BoardUzerindekiYeri=@BoardUzerindekiYeri,TamirSeviyesi=@TamirSeviyesi,SonKontrolSonucu=@SonKontrolSonucu,TeslimEdilenTarih=@TeslimEdilenTarih,UrunDurumu=@UrunDurumu Where KayitNo="+ktN,con);
komut.Parameters.AddWithValue("@SeriNo",Convert.ToString(sNText.Text));
komut.Parameters.AddWithValue("@PartNo", Convert.ToString(partNoText.Text));
komut.Parameters.AddWithValue("@PID",pidText.Text);
komut.Parameters.AddWithValue("@Model",Convert.ToString(modelText.Text));
komut.Parameters.AddWithValue("@UretimTarihi",uretimTarihi.Value);
komut.Parameters.AddWithValue("@Teknisyen", Convert.ToString(teknisyenSec.SelectedItem));
komut.Parameters.AddWithValue("@ServisGiris", serviseGirisTarihi.Value);
komut.Parameters.AddWithValue("@Ariza", Convert.ToString(arizaText.Text));
komut.Parameters.AddWithValue("@TeknisyenNotu", Convert.ToString(teknisyenNotuText.Text));
komut.Parameters.AddWithValue("@YapilanIslem", Convert.ToString(yapilanIslemText.Text));
komut.Parameters.AddWithValue("@MudahaleSonucu", Convert.ToString(mudahaleSonucuSec.SelectedItem));
komut.Parameters.AddWithValue("@BoardUzerindekiYeri", Convert.ToString(boardYeriText.Text));
komut.Parameters.AddWithValue("@TamirSeviyesi", Convert.ToString(tamirSeviyesiSec.SelectedItem));
komut.Parameters.AddWithValue("@CaseID", caseIDText.Text);
komut.Parameters.AddWithValue("@SonKontrolSonucu", Convert.ToString(sonKontrolSonucuSec.SelectedItem));
komut.Parameters.AddWithValue("@TeslimEdilenTarih", teslimEdilenTarih.Value);
komut.Parameters.AddWithValue("@UrunDurumu", Convert.ToString(urunDurumuSec.SelectedItem));
// komut.Parameters.Add(" @ Foto",OleDbType.Binary,foto.Length).Value = foto; con.Open(); komut.ExecuteNonQuery(); con.Close(); MessageBox.Show("成功&#34);
表设计的顺序如下:
KayitNo(Int,PK,AutomaticNumber)
SeriNo(Long Text)
PartNo(Long Text)
PID(Int)
Model(Long Text)
UretimTarihi(Date/Time)
Teknisyen(Text)
ServisGiris(Date/Time)
Ariza(Long Text)
TeknisyenNotu(Long Text)
YapilanIslem(Long Text)
MudahaleSonucu(Long Text)
BoardUzerindekiYeri(Long Text)
TamirSeviyesi(Long Text)
CaseID (Int)
SonKontrolSonucu(Text)
TeslimEdilenTarih(Date/Time)
UrunDurumu(LongText)
Foto(OLE OBJECT)
答案 0 :(得分:1)
DateTime值需要从string
转换为sql datetime
尝试:OleDbCommand komut = new OleDbCommand("UPDATE TSP_Data SET UretimTarihi= convert(varchar(50),@UretimTarihi,101) Where KayitNo="+ktN, con);
使用:komut.Parameters.AddWithValue("@UretimTarihi",uretimTarihi.Value.ToString("yyyy'-'MM'-'dd' 'HH':'mm':'ss"));
或DateTimeOffset.Now.ToString("yyyy'-'MM'-'dd' 'HH':'mm':'ss' 'zzz")
您是否尝试逐个输入值,以确定哪一个给出了错误?使用插入字符串不确定是否存在多个问题。但是对于某些我在插入值时遇到的日期时间错误。