我刚学c#。我正在尝试在 c# windows 窗体中制作简单的 CRUD,但那里出现了一些错误。错误提示 The ConnectionString property has not been initialized.
下面的代码显示了我是如何尝试的。
App.config 用于连接 SQL SERVER
<connectionStrings>
<add name="connectionstr" connectionString="Data Source=DESKTOP-F8UCLUB;Initial Catalog=bug_tracker;Integrated Security=True" />
DBConnection 类
class DBConnection
{
private string connectionString = ConfigurationManager.ConnectionStrings["connectionstr"].ConnectionString;
public SqlConnection GetConnection()
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
if (connection.State == ConnectionState.Closed)
{
connection.Open();
}
return connection;
}
}
}
插入函数
public void Insert(Programmer t)
{
conn.Open();
IDbTransaction trans = null;
try
{
conn.BeginTransaction();
SqlCommand sql = new SqlCommand(null, conn);
sql.CommandText = "INSERT INTO tbl_programmer VALUES(@fullName, @username, @password)";
sql.Parameters.AddWithValue("@fullName", t.FullName);
sql.Parameters.AddWithValue("@username", t.Username);
sql.Parameters.AddWithValue("@password", t.Password);
sql.Prepare();
sql.ExecuteNonQuery();
trans.Commit();
}
catch (SqlException ex)
{
trans.Rollback();
throw ex;
}
finally
{
conn.Close();
}
}
最佳答案
The problem is
using
keyword.using
directive only be use disposable objects.If you create any instance in using block, the instance disposible out of curly braces..
public SqlConnection GetConnection()
{
SqlConnection connection = new SqlConnection(connectionString);
if (connection.State == ConnectionState.Closed)
connection.Open();
return connection;
}
关于C# - ConnectionString 属性尚未初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50190997/