我正在开发一个连接到Azure数据库的Web应用程序。我试图使用DATEADD函数,但我收到一个错误。
我的代码:
SqlCommand commandAvg = new SqlCommand("SELECT AVG (" + statDataSelection + ") FROM Buoy3v3 WHERE time >'" + TextBox1_fromDate.Text + "' AND time <'" + TextBox2_toDate.Text + "';", connection);
commandAvg.CommandType = CommandType.Text;
SqlCommand commandAvg1month = new SqlCommand("SELECT AVG (" + statDataSelection + ") FROM Buoy3v3 WHERE time > (DATEADD(month, 1,'" + TextBox1_fromDate.Text + "')) AND time < (DATEADD(month, 1,'" + TextBox2_toDate + "')) ;", connection);
commandAvg1month.CommandType = CommandType.Text;
string Avgresult = commandAvg.ExecuteScalar().ToString();
string Avgresult1month = commandAvg1month.ExecuteScalar().ToString();
Avgresult变量工作正常,但我收到Avgresult1month变量的错误,所以我假设我的问题是DATEADD函数,但我无法弄清楚是什么问题。
非常感谢任何帮助。
答案 0 :(得分:1)
您编码:
SqlCommand commandAvg1month = new SqlCommand("SELECT AVG (" + statDataSelection + ") FROM Buoy3v3 WHERE time > (DATEADD(month, 1,'" + TextBox1_fromDate.Text + "')) AND time < (DATEADD(month, 1,'" + TextBox2_toDate + "')) ;", connection);
commandAvg1month.CommandType = CommandType.Text;
你认为SQL是聪明的,因为字符串是DateTime吗? ;)
更正DateADD函数中的TextBox1_FromDate.Text
和TextBox2_ToDate
变量
答案 1 :(得分:0)
理论上,您将TextBox
连接到字符串(System.Web.UI.WebControls.TextBox
,而不是Text
属性的实际值)。
TextBox2_toDate.Text << .Text
但实际上,您应该将其绑定为参数,而不是直接将其连接起来有多种原因,包括:
另请注意,TIME
是保留字,需要通过添加括号来处理,即[TIME]