C# 选择存储过程输出的第二列
我的存储过程返回C# 选择存储过程输出的第二列,c#,wpf,visual-studio-2010,linq,C#,Wpf,Visual Studio 2010,Linq,我的存储过程返回 1 skl meter 50 我希望我的c程序从输出中选择skl 我现在正在做这个 SqlDataReader dr=comm.ExecuteReader(); var fal = dr.Read(); if (fal) { var skl = dr.GetString(1); } 但它不起作用 如何从sql输出中选择Skl或任何其他值 问题是,即使输出中不存在skl,它也会选择skl。如果您的过程返回的数据超过1行,那么我建议绑定到Datagrid。 通过这种方式
1 skl meter 50
我希望我的c程序从输出中选择skl
我现在正在做这个
SqlDataReader dr=comm.ExecuteReader();
var fal = dr.Read();
if (fal)
{
var skl = dr.GetString(1);
}
但它不起作用
如何从sql输出中选择Skl或任何其他值
问题是,即使输出中不存在skl,它也会选择skl。如果您的过程返回的数据超过1行,那么我建议绑定到Datagrid。 通过这种方式,您还可以查看输出,这是一种ui调试方式。 一旦datagrid视图显示了数据行,我就会这样做:
foreach (DataGridViewRow row in dataGridView1.Rows)
{
if(row.Cells["Name of the field"].Value != DBNull.Value)
{
string Myval = row.Cells["Name of the field"].Value;
}
}
但要做到这一点并进行检查还有很长的路要走。老实说,我认为您使用的方法应该有效,您是否收到错误?还是该值错误?您需要检查null和hasrows
if(rdr.HasRows)
{
rdr.read();
string strValue = string.Empty;
if (!rdr.IsDBNull(1)) strValue = rdr.GetString(1);
}
else {} // woops
它怎么不起作用??您是否有错误?如果有:错误是什么?您能否澄清该输出是显示为文本,还是在结果集中?如果列在结果集中,最好按名称而不是顺序选择列。是否可以显示StoredProcess文本?