2016-03-14 57 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非常多!!!她工作! –

相關問題