Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 条件表达式中的数据类型不匹配-仅在最近启动_C#_Sql_Asp.net_Ms Access - Fatal编程技术网

C# 条件表达式中的数据类型不匹配-仅在最近启动

C# 条件表达式中的数据类型不匹配-仅在最近启动,c#,sql,asp.net,ms-access,C#,Sql,Asp.net,Ms Access,我使用Access数据库。30分钟前没有发生此错误 错误是: 条件表达式中的数据类型不匹配 我的数据库列包括: ID = AutoNumber isin_adi = Short Text isin_tanimi = Long Text verildigi_tarih= Date/Time teslim_tarihi=Date/Time sorumlu_marka = Short Text sorumlu_ajans=Short Text personel_id=Number revize=Sho

我使用Access数据库。30分钟前没有发生此错误

错误是:

条件表达式中的数据类型不匹配

我的数据库列包括:

ID = AutoNumber
isin_adi = Short Text
isin_tanimi = Long Text
verildigi_tarih= Date/Time
teslim_tarihi=Date/Time
sorumlu_marka = Short Text
sorumlu_ajans=Short Text
personel_id=Number
revize=Short Text
is_durum=Short Text
Temsilci_isverenid=Number

我解决了这个问题。我意识到参数的等级不是真的。我这样更改代码:

OleDbConnection con = new OleDbConnection(Utility.GetConnection());
        con.Open();
        OleDbCommand cmd2 = new OleDbCommand("INSERT INTO Temsilci(isin_adi,isin_tanimi,verildigi_tarih,teslim_tarihi,sorumlu_marka,sorumlu_ajans,revize,Temsilci_isverenid) values (@isinadi,@isintanimi,@vertarih,@testarih,@smarka,@sajans,@revize,@temsid)", con);
        cmd2.Parameters.Add("isinadi", txtisAdi.Text);
        cmd2.Parameters.Add("isintanimi", txtMarkaAdi.Text); 
        cmd2.Parameters.Add("vertarih", txtverilisTarihi.Text);
        cmd2.Parameters.Add("testarih", txtTeslimTarihi.Text);       
        cmd2.Parameters.Add("smarka", txtMarkaTemsilcisi.Text);
        cmd2.Parameters.Add("sajans", txtAjansTemsilcisi.Text);
        cmd2.Parameters.Add("revize", txtSorumluKisiler.Text);        
        cmd2.Parameters.Add("temsid", Session["UserID"]);
        cmd2.ExecuteNonQuery();
        con.Close(); 
之后,我得到如下错误: 无法添加或更改记录,因为表“Personel”中需要相关记录。 我从两个表中删除了关系。现在它工作正常了。 我认为access数据库有一些错误,即使代码是正确的,也可能会出现错误。
所以我将把我的数据库从ACCESS迁移到SQL。谢谢各位。

会话[“用户ID”]的确切值是多少?还有每个文本框。如果您将一组字符串传递给数据库,它将抱怨列不是字符串,则可能重复。。您应该转换/解析所有非字符串参数。我稍微更改了问题的布局(主要是将查询的一部分移到下一行),以便更容易发现问题。解释您看到的内容。
OleDbConnection con = new OleDbConnection(Utility.GetConnection());
        con.Open();
        OleDbCommand cmd2 = new OleDbCommand("INSERT INTO Temsilci(isin_adi,isin_tanimi,verildigi_tarih,teslim_tarihi,sorumlu_marka,sorumlu_ajans,revize,Temsilci_isverenid) values (@isinadi,@isintanimi,@vertarih,@testarih,@smarka,@sajans,@revize,@temsid)", con);
        cmd2.Parameters.Add("isinadi", txtisAdi.Text);
        cmd2.Parameters.Add("isintanimi", txtMarkaAdi.Text); 
        cmd2.Parameters.Add("vertarih", txtverilisTarihi.Text);
        cmd2.Parameters.Add("testarih", txtTeslimTarihi.Text);       
        cmd2.Parameters.Add("smarka", txtMarkaTemsilcisi.Text);
        cmd2.Parameters.Add("sajans", txtAjansTemsilcisi.Text);
        cmd2.Parameters.Add("revize", txtSorumluKisiler.Text);        
        cmd2.Parameters.Add("temsid", Session["UserID"]);
        cmd2.ExecuteNonQuery();
        con.Close();