来自 objComm.ExecuteReader 的 DataReader
Posted
技术标签:
【中文标题】来自 objComm.ExecuteReader 的 DataReader【英文标题】:DataReader from objComm.ExecuteReader 【发布时间】:2013-08-30 02:20:13 【问题描述】:我有以下代码,我想知道是否有人知道处理此问题的正确方法。
SqlConnection objConn = new SqlConnection(ConfigurationManager.ConnectionStrings["someConnectionString"].ConnectionString);
SqlCommand objComm = new SqlCommand("usp_someStoredProcedure", objConn);
objComm.CommandType = CommandType.StoredProcedure;
objComm.Parameters.AddWithValue("@Variable1", VOne);
objComm.Parameters.AddWithValue("@Variable2", VTwo);
objConn.Open();
using (IDataReader dr = objComm.ExecuteReader(CommandBehavior.CloseConnection))
//do stuff
现在,假设存储过程什么都不返回,有没有办法处理这个问题?
【问题讨论】:
我已经编辑了你的标题。请参阅“Should questions include “tags” in their titles?”,其中的共识是“不,他们不应该”。 当 SP 没有返回数据时,您当前的代码可以正常工作。 “有没有办法处理这个”:这取决于,你希望应用程序如何处理它? 【参考方案1】:通常你用 //do stuff 标记的部分会包含一个
if (dr.Read())
// do stuff
或者一个
while (dr.Read())
// do stuff
.Read() 检查确保您仅在它返回数据时才采取行动。
【讨论】:
【参考方案2】:while (dr.Read())
Console.WriteLine(String.Format("0", reader[0]));
您可以参考http://msdn.microsoft.com/en-us/library/y6wy5a0f.aspx
【讨论】:
以上是关于来自 objComm.ExecuteReader 的 DataReader的主要内容,如果未能解决你的问题,请参考以下文章
为啥 WCF 服务能够处理来自不同进程的调用而不是来自线程的调用
来自 viewDidAppear 的 Segue 调用有效,但不是来自 viewWillAppear