C# 将数据集转换为字符串或Int
我有一个获取SQL命令并返回数据集的函数。现在我尝试运行以下字符串命令: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
@"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。好的,我会用谷歌搜索它,我需要它来完成我余下的项目。非常感谢。