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

时间:2011-10-24 16:11:18

标签: c# ado.net

当我在我的应用程序中添加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();
 }

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

您没有显示初始化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
}

答案 2 :(得分:0)

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