尚未初始化连接字符串属性

本文关键字:字符串 属性 连接 初始化 | 更新日期: 2023-09-27 18:12:07

当我在应用程序中添加Car时,我得到

ConnectionString属性没有初始化。

我有ConnectionString属性的问题。我检查了我的类似问题,但没有发现任何有用的。

我使用了一个名为dbConnection.cs的类连接:

class dbConnection
{      
  //Connection to database 
  private string con = "Data Source=(local)''SQLEXPRESS; Initial Catalog=MLQ7024; Integrated Security=TRUE".ToString();
  public string Con
  {
    get
    {
      return con;
    }
  }
}

这是我的按钮代码

private void btnAddCar_Click(object sender, EventArgs e)
{
  using (SqlConnection con = new SqlConnection(dc.Con))
  {
    DataTable dtCar = new DataTable();
    BindingSource Car_bs = new BindingSource();
    using (SqlCommand cmd = new SqlCommand("sp_Add_Car", con))
    {                  
      try
      {
        cmd.CommandType = CommandType.StoredProcedure;
        //......
        con.Open();
        cmd.ExecuteNonQuery();
        con.Close();
        dtCar.Clear();
        da.Fill(dtCar);
      }
      catch (Exception ex)
      {
        MessageBox.Show(ex.Message + "'t" + ex.Source);
      }
    }
  }
  refreshCar();            
}

这是另一个按钮正常工作的代码

private void btnAddPayment_Click(object sender, EventArgs e)
{
  using (SqlConnection con = new SqlConnection(dc.Con))
  {
    DataTable dtPayment = new DataTable();
    using (SqlCommand cmd = new SqlCommand("sp_Add_Paiements", con))
    {
      try
      {
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.Parameters.Add("@id_paiement", SqlDbType.Char).Value = txtBoxPaymentId.Text;
        cmd.Parameters.Add("@montant", SqlDbType.SmallMoney).Value = txtBoxAmount.Text;
        cmd.Parameters.Add("@id_Location", SqlDbType.Char).Value = cmbpaymentLesaseId.Text;
        //cmd.Parameters.Add("@status", SqlDbType.Char).Value = txtBoxStatusPayment.Text;

         con.Open();
         cmd.ExecuteNonQuery();
         con.Close();
         dtPayment.Clear();
         da.Fill(dtPayment);
         btnAddLease.Hide();
         refreshPayments();
       }
       catch (Exception ex)
       {
         MessageBox.Show(ex.Message + "'t" + ex.Source);
       }
     }
   }
   btnAddPayment.Hide();
 }

尚未初始化连接字符串属性

您没有显示您初始化dbConnection类的位置。我猜,将其全部更改为静态可能会有所帮助:

static class dbConnection
{      
  //Connection to database 
  private static string con = "Data Source=(local)''SQLEXPRESS; Initial Catalog=MLQ7024; Integrated Security=TRUE"
  public static string Con
  {
    get
    {
      return con;
    }
  }
}

如果您的dbConnection类在一个方法中工作而不是在另一个方法中工作,那么您可能在一个方法中初始化了它而不是在另一个方法中初始化了它。除非必须处理不同的数据库连接,否则为数据库连接使用静态类可能是最好的方法。

然后像这样改变调用方法:

using (SqlConnection con = new SqlConnection(dbConnection.Con))
{
  // blah-blah
}

假设dc是您的连接,那么它必须用连接字符串初始化。也许-如果它是一个类-你必须设置一些属性,如数据库路径等

SqlConnection Con= New SQLConnection(@"Data Source=(local)''SQLEXPRESS; Initial Catalog=MLQ7024; Integrated Security=TRUE");