gpt4 book ai didi

c# - 如何正确使用 SqlDataReader?

转载 作者:行者123 更新时间:2023-11-30 14:12:16 25 4
gpt4 key购买 nike

我有以下两种方法:

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();
}

我知道我们可以合并这两种方法,但我正在寻找更好的写法,否则这会导致一些问题??

最佳答案

实际上,您实际上是在让自己敞开心扉。你真的想这样写:

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 语句自动处理它时,它将被调用。

现在,将该语句集合包装在 try...catch 中,您就可以开始工作了。

关于c# - 如何正确使用 SqlDataReader?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18128175/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com