【发布时间】:2013-07-10 08:55:16
【问题描述】:
我有一个 WebMethod,它被调用来从 SQL Server 检索 varchar(max) 列。我创建了我需要的存储过程,它在 Management Studio 中运行良好,但是当我运行以下代码时出现错误:
不存在数据时尝试读取无效
代码:
[WebMethod]
public static void PopulatePopUp(string arg)
{
var str = GlobalStatic.ExceptBlanks(arg);
SqlConnection conn = new SqlConnection(WebConfigurationManager.ConnectionStrings["Conn"].ConnectionString);
SqlDataReader rdr = null;
using (conn)
{
using (SqlCommand cmd = new SqlCommand())
{
conn.Open();
cmd.CommandText = "GetMessage_Sel";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@messageId", SqlDbType.VarChar, -1).Value = str;
cmd.Parameters.Add("@RowCount", SqlDbType.Int).Direction = ParameterDirection.Output;
cmd.Connection = conn;
try
{
rdr = cmd.ExecuteReader();
if (rdr.HasRows)
{
string fieldValue = rdr.GetString(0);
}
else
{
Console.WriteLine("No rows found.");
}
rdr.Close();
}
catch (Exception err)
{
// handle the error
//messageInsert = false;
}
finally
{
conn.Close();
}
}
}
}
【问题讨论】:
-
可以发一下流程吗?
-
嗯,你需要在某处拨打
rdr.Read()
标签: c# datareader varcharmax