更新标准错误中的SQL数据不匹配

时间:2017-12-04 23:16:50

标签: c# ms-access oledb

首先,我使用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)

1 个答案:

答案 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")

  

您是否尝试逐个输入值,以确定哪一个给出了错误?使用插入字符串不确定是否存在多个问题。但是对于某些我在插入值时遇到的日期时间错误。