【发布时间】:2016-01-01 10:43:45
【问题描述】:
我是 C# 新手。我想编写一个可以轻松连接到 SQL Server 数据库的应用程序。我有一个单独的DBConnection 类,我想从任何形式调用这个类。
问题是我的“阅读器”总是返回Null。
class DBconnection
{
private SqlConnection conn;
private SqlCommand cmd;
private SqlDataReader rdr;
private DataTable dt;
private SqlConnection MyConnection
{
get
{
if (this.conn == null)
{
this.conn = new SqlConnection(DrivingSchool.Properties.Settings.Default.cdsConnectionString);
}
return conn;
}
}
private SqlCommand MyCommand
{
get
{
if (cmd == null)
{
cmd = new SqlCommand();
MyCommand.Connection = conn;
}
return cmd;
}
}
public DataTable RunQuery(string query)
{
dt = new DataTable();
MyCommand.CommandText = query;
MyCommand.Connection = conn;
MyConnection.Open();
rdr = MyCommand.ExecuteReader(CommandBehavior.CloseConnection);
if(rdr.HasRows)
{
dt.Load(rdr);
}
MyConnection.Close();
return dt;
}
}
【问题讨论】:
-
在我看来,在考虑创建连接和 SqlCommand 时,您的代码过于复杂。
-
连接需要在使用
SqlDataReader期间保持打开。使用这个单独的DbConnection类只会使使用 ADO.NET 变得不必要更加复杂,并引入错误 - 在这种情况下不是一个好主意
标签: sql-server c#-4.0