将DataSet转换为String或Int

时间:2013-04-02 19:06:03

标签: c# sql dataset

我有一个获取SQL命令并返回数据集的函数。现在我正在尝试运行此字符串命令:

@"SELECT ProductPrice 
FROM Products 
Where ProductPrice IN 
(
  SELECT ProductPrice 
  FROM Products 
  WHERE  ProductName =N'" 

+ listBox1.Text 
+ "')").Tables[0].Rows[0].ToString()

ProductPriceINT ProductNameNVARCHAR

我在文本框中收到了这个结果:

'System.Data.DataRow'

顺便说一句:这是一个学校项目!我知道这可能容易受到SQL注入攻击

2 个答案:

答案 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()