无论如何,我们是否可以获取 Sql 的标签值
SELECT COUNT(*) AS Expr1
FROM Book
INNER JOIN Temp_Order ON Book.Book_ID = Temp_Order.Book_ID
WHERE (Temp_Order.User_ID = 25)
AND (CONVERT (nvarchar, Temp_Order.OrderDate, 111) = CONVERT (nvarchar, GETDATE(), 111))
在这里,我想更改我的 User_ID 以从 label.Text 获取
此 Sql 语句位于 DataView 中。所以在向导中它不接受文本框值或任何内容。
有人可以帮我解决这个问题吗
SELECT COUNT(*) AS Expr1
FROM Book
INNER JOIN Temp_Order ON Book.Book_ID = Temp_Order.Book_ID
WHERE (Temp_Order.User_ID = 25)
AND (CONVERT (nvarchar, Temp_Order.OrderDate, 111) = CONVERT (nvarchar, GETDATE(), 111))
In here i want to change my User_ID to get from a label.Text
this Sql Statement is in a DataView. so in the Wizard it not accepting a text box values or anything.
can someone please help me to solve this
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
切勿使用 CONVERT 比较日期列。要仅比较日期时间中的日期,请使用 BETWEEN。更好的是,使用列的 DATE 类型而不是 DATETIME。
要过滤 DataView,请过滤其所基于的查询。使用参数化查询:
将@User_ID作为参数传递给查询:
command.Parameters.AddWithValue("@User_ID", Convert.ToInt32(label.Text));
也可以获得类似的结果使用 LINQ 并将结果转换为 DataView,请参阅使用 DataView 进行过滤 。
无论您做什么,都不要使用 DataView.RowFilter 属性。
Never compare date columns by using CONVERT. To compare date only from a date time, use BETWEEN. Better still, use the DATE type for the column instead of DATETIME.
To filter a DataView, filter the query on which is based. Use a parametrized query:
Pass the @User_ID as a parameter to the query:
command.Parameters.AddWithValue("@User_ID", Convert.ToInt32(label.Text));
You can also obtain similar results using LINQ and converting the result to a DataView, see Filtering with DataView.
Whatever you do, don't use the DataView.RowFilter property.