Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将数据集转换为字符串或Int_C#_Sql_Dataset - Fatal编程技术网

C# 将数据集转换为字符串或Int

C# 将数据集转换为字符串或Int,c#,sql,dataset,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() ProductPrice是一个整数 ProductNa

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

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

+ listBox1.Text 
+ "')").Tables[0].Rows[0].ToString()
ProductPrice是一个整数 ProductName是一个NVARCHAR

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

“System.Data.DataRow”

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

我猜您尝试使用dataRow.ToString打印。 C不知道如何打印DataRow类型的对象,因为该对象可能包含不同的列。
如果您想打印ProductPrice,请尝试使用dataRow[0]。而不是ToString。

因为这是一个家庭作业问题,我将坚持使用,并尝试在不给您完整答案的情况下提供帮助

尽量提供能引导提问者正确方向的解释。真正的理解是学生的真正目标,但是 试图提供很少不被任何问题认可的信息。 如果您认为完整的代码示例对学生没有帮助,那么最好不要提供完整的代码示例。你 可以先使用伪代码,并本着创建 编程资源,你可以回来后,适当的数量 计时并编辑您的响应,以包含更完整的代码。这边 学生仍然需要编写自己的代码,但完整的解决方案可以 任务结束后可用。 首先,您的示例中缺少一些代码,但根据结果,我假设您的代码中有如下内容:

TextboxResults.Text = MyTable.Rows[0].ToString();
获取System.Data.DataRow的原因是,您只引用了表中由数据适配器填充的第一行,这是一个对象集合

提示:在select语句中,价格位于已引用的行中基于0的索引内的第一个元素中

较短版本:您正在引用表的第一行。您需要引用表中第一行中第一个单元格的内容

作为一名优秀的开发人员通常意味着知道如何使用搜索,因此我会在谷歌上搜索以下短语,并应用我刚才告诉您的内容,您应该有自己的答案:

如何访问表中特定数据行的单元格

第二个提示:

如果我要写入第一行第一个单元格的内容,它将如下所示:

myTable.Rows[0][0] = 1.99;
而不是

myTable.Rows[0] = 1.99;

比方说,如果查询将返回最多1行和1个字段ProductPrice,我建议您使用ExecuteScalar而不是DataAdapter.Fill等。您希望文本框中出现什么?您正在对DataRow对象执行字符串操作。当然,您必须遍历行中的实际字段才能找到它们的值。请注意,我试图为您提供一个要遵循的方向,而不是实际答案。我在另一个查询中使用了ToString技巧,效果很好,因此我认为它将是相同的。@ShmulikCohen ToString在值类型上使用时可以给出合理的结果,假设一个int值为5,你做了一个字符串,它将能够产生一个字符串5。但是,当您在引用类型上使用ToString时,如果对象的值可能超过1,它应该返回什么?默认情况下,它会告诉您对象的类型。在你的例子中,DataRow.Gena,我没有选择权,DataRow[0]。ToString。好的,我会用谷歌搜索它,我需要它来完成我余下的项目。非常感谢。