将DataSet转换为字符串或Int
我有一个获取SQL命令并返回数据集的函数。现在,我试图运行此字符串命令:将DataSet转换为字符串或Int
@"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注入
由于这是一个家庭作业问题,我将坚持guidelines for homework questions并尝试在没有给出完整答案的情况下提供帮助。
- 尝试提供解释,这将导致该提问者在正确的方向。真正的理解是学生的真正目标,但 试图提供这是很少不明白的任何问题。
- 通常最好不要提供完整的代码示例,如果您认为它不会帮助学生,使用您的最佳判断。您可以先使用伪代码,并且本着创建 编程资源的精神,您可能会在适当的时间后回来并编辑您的响应以包含更完整的代码。这样, 学生仍然需要编写自己的代码,但完成解决方案后 可在作业结束后变为可用。
首先,你错过了你的样品中的一些代码,但成果的基础上,我假设你已经在你的代码是这样的:
TextboxResults.Text = MyTable.Rows[0].ToString();
你得到System.Data.DataRow的原因是你只引用了行(表中由数据适配器填充的第一行),这是一个对象集合。
提示:在您选择的语句中,价格位于(基于0的索引)内的第一个元素您已经引用的行中。
较短的版本:您引用表的第一行。您需要引用表格第一行中第一个单元格的内容。
既然是一个优秀的开发人员往往意味着知道如何使用搜索,我想谷歌以下的短语和申请什么我只是告诉你,你应该有你的答案:
如何访问一个特定的数据行的表中的
第二提示单元:
如果我打算写的内容第一行中的第一个单元格的它看起来像这样的:
myTable.Rows[0][0] = 1.99;
代替
myTable.Rows[0] = 1.99;
好吧,我会谷歌它,我需要它为我的项目的其余部分。谢谢 ! – ShmuelCohen
'第二提示'像魔术一样工作,谢谢! – ShmuelCohen
Shmulik,
我猜你尝试使用dataRow.ToString()
打印。 C#不知道如何打印DataRow类型的对象,因为对象可能包含不同的列。 如果要打印ProductPrice,请尝试使用dataRow[0].ToString()
。
Gena, 我没有选择,dataRow [0] .ToString()。 – ShmuelCohen
说,如果查询是要与1场(ProductPrice)返回1行的最大,我建议你使用'ExecuteScalar'而不是'DataAdapter.Fill'等。 – shahkalpesh
你在文本框中期待什么?您正在'DataRow'对象上执行'ToString()'。当然,你必须遍历行中的实际字段才能找到它们的值。请注意,我试图给你一个方向,而不是实际的答案。 – Bazzz
嗯,我用另一个查询**的ToString()**技巧,它工作得很好,所以我thoght它将是相同的。 – ShmuelCohen