如何正确使用SqlDataReader?

科技类

我有以下两种方法:

internal static SqlDataReader SelectData(string sql)
{
    using (var sqlConnection = new SqlConnection(Constant.ConnectionString))
    {
        sqlConnection.Open();
        var sqlCommand = new SqlCommand(sql, sqlConnection);
        var dataReader = sqlCommand.ExecuteReader();
        return dataReader;
    }
}

============

并将此方法用作:

var dataReader = SelectData(---some sql ---);

private void AddData(dataReader)
{
    while (dataReader.Read())
    {
        Employee e = new Employee();
        e.FirstNamei = dataReader["Name"].ToString();
    }

    dataReader.Close();
}

我知道我们可以合并这两种方法,但是我正在寻找更好的方法来编写此方法,否则可能会引起一些问题?

迈克·佩伦努德(Mike Perrenoud)

实际上,您实际上让自己显得有些开放。您真的想这样写:

using (SqlConnection cnn = new SqlConnection(cnnString))
using (SqlCommand cmd = new SqlCommand(sql, cnn))
{
    // use parameters in your SQL statement too, so you can do this
    // and protect yourself from SQL injection, so for example
    // SELECT * FROM table WHERE field1 = @parm1
    cmd.Parameters.AddWithValue("@parm1", val1);

    cnn.Open();
    using (SqlDataReader r = cmd.ExecuteReader())
    {

    }
}

因为您需要确保将这些对象丢弃。此外,按照这个方向,您就不需要dataReader.Close()using语句自动处置它时,它将被调用

现在,将语句集合包装在a中try...catch,您就可以从事业务了。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在SqlConnection和SqlDataReader上正确使用异步方法?

来自分类Dev

如何在SqlConnection和SqlDataReader上正确使用异步方法?

来自分类Dev

如何使用Dapper获取SqlDataReader?

来自分类Dev

如何使用SqlDataReader返回和使用IAsyncEnumerable

来自分类Dev

如何使用SqlDataReader获取浮点值?

来自分类Dev

使用SqlDataReader

来自分类Dev

如何使用SqlDataReader获取存储过程返回的分组数据?

来自分类Dev

如何为SqlConnection / SqlDataReader使用客户端游标?

来自分类Dev

如何在 JavaScript 中使用 C# SQLDataReader 对象

来自分类Dev

如何正确使用dispose()?

来自分类Dev

如何正确使用Realm

来自分类Dev

如何正确使用getline

来自分类Dev

如何正确使用RegExp

来自分类Dev

如何正确使用GetFolderAsync()?

来自分类Dev

如何正确使用mciSendString

来自分类Dev

如何正确使用ngMousedown?

来自分类Dev

如何正确使用KeyPressEvent

来自分类Dev

如何正确使用INetSharingManager?

来自分类Dev

如何正确使用MultiByteToWideChar

来自分类Dev

如何正确使用allContactedBodies?

来自分类Dev

如何正确使用cache()?

来自分类Dev

Linq如何正确使用

来自分类Dev

R:如何正确使用IF?

来自分类Dev

如何正确使用appendChild

来自分类Dev

如何正确使用[授权]

来自分类Dev

如何正确使用Firestore

来自分类Dev

如何正确使用ViewChild

来自分类Dev

如何正确使用glutSpecialFunc?

来自分类Dev

如何正确使用ValidateAntiForgeryToken?