我有一个获取SQL命令并返回数据集的函数。现在我正在尝试运行此字符串命令:
@"SELECT ProductPrice
FROM Products
Where ProductPrice IN
(
SELECT ProductPrice
FROM Products
WHERE ProductName =N'"
+ listBox1.Text
+ "')").Tables[0].Rows[0].ToString()
ProductPrice
是INT
ProductName
是NVARCHAR
我在文本框中收到了这个结果:
'System.Data.DataRow'
顺便说一句:这是一个学校项目!我知道这可能容易受到SQL注入攻击答案 0 :(得分:2)
由于这是一个家庭作业问题,我将坚持使用guidelines for homework questions并尝试提供帮助,而不会给你一个完整的答案。
- 尽量提供能够引导提问者正确方向的解释。真正的理解是学生的真正目标,但是 试图提供任何问题都很少被忽视。
- 如果您认为使用您的最佳判断认为它不会对学生有所帮助,通常最好不提供完整的代码示例。您 可以先使用伪代码,并在创建精神的过程中使用伪代码 编程资源,你可以在适当的数量之后回来 时间并编辑您的回复以包含更完整的代码。这条路, 学生仍然必须编写自己的代码,但完整的解决方案可以 在任务结束后可以使用。
首先,您在示例中缺少一些代码,但根据结果,我假设您的代码中有类似的内容:
TextboxResults.Text = MyTable.Rows[0].ToString();
您获得System.Data.DataRow的原因是您只引用了行(表中由数据适配器填充的第一行),这是一组对象。
提示:在您的select语句中,价格位于第一个元素(基于0的索引)中您已经引用的行。
更短版本:您正在引用表格的第一行。您需要引用表格第一行中第一个单元格的内容。
由于成为一名优秀的开发人员通常意味着知道如何使用搜索,我会谷歌以下的短语并应用我刚刚告诉你的内容,你应该得到答案:
如何访问表格中的特定数据行的单元格
第二个提示:
如果我要 写 到第一行中第一个单元格的内容,它将如下所示:
myTable.Rows[0][0] = 1.99;
而不是
myTable.Rows[0] = 1.99;
答案 1 :(得分:1)
Shmulik,
我猜您尝试使用dataRow.ToString()
进行打印。
C#不知道如何打印DataRow类型的对象,因为该对象可能包含不同的列。
如果您要打印ProductPrice,请尝试使用dataRow[0].ToString()
。