来自 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

求职作业帮 C++方向面经

来自 CWnd 的 ReleaseDC 覆盖来自 winuser 的 ReleaseDC

来自麦克风的声音与来自扬声器的声音