2016-03-14 56 views
-2

当我执行以下查询,我得到错误信息date is incompatible with int不相容:C#操作数类型冲突:日期与诠释

textBox4.Text = dateTimePicker1.Value.ToShortDateString(); 

DataSet ds1 = new DataSet(); 

cmd.CommandText = "select ID_REPAS FROM CONSOMMER C , GROUPE G WHERE G.REF_GROUPE=C.REF_GROUPE AND C.dateEFF=G.dateEff and G.REF_GROUPE=" + textBox3.Text + "and C.dateEFF=" +dateTimePicker1.Value.ToShortDateString(); 
da2.Fill(ds1, "idrepas"); 

textBox2.Text = ds1.Tables["idrepas"].Rows[0][0].ToString(); 
+0

哪条线路导致问题,以及您的问题是什么? –

+0

date在这一行中与int不兼容:and C.dateEFF =“+ dateTimePicker1.Value.ToShortDateString() –

+0

你可以自己展示一些努力,例如通过消除潜在的错误源来缩小问题。错误指向?编译器应该给你一个位置,请在代码中指出 – dovetalk

回答

1

清晰,最安全的方法是使用SQL参数...

cmd.CommandText = "select ID_REPAS FROM CONSOMMER C , GROUPE G WHERE G.REF_GROUPE=C.REF_GROUPE AND C.dateEFF=G.dateEff and [email protected] and [email protected]"; 

command.Parameters.Add(new SqlParameter("txtBox3Val" , textBox3.Text)); 
command.Parameters.Add(new SqlParameter("shortDate", dateTimePicker1.Value.ToShortDateString()); 

这有助于避免难以管理粘连('+')代码并防止注入攻击。

0

尝试把单引号括起来的日期字符串(数字的日期字符串是被当做一个整数,否则):

... + "and C.dateEFF='" + dateTimePicker1.Value.ToShortDateString() + "'"; 
+0

请注意,代码不好 - 它容易受到SQL注入的影响 –

+0

Rufus L thnk uuuuuuuuuuu非常多!!!她工作! –

相关问题