我一直試圖使用C#語言將數據從Visual Studio添加到SQL服務器,但它顯示錯誤,當我按下添加按鈕。連接類如下所示:錯誤ExecuteNonQuery:連接屬性尚未初始化,當我單擊插入按鈕
class Globalconnection
{
public static SqlConnection cn;
public static string strServer = "";
public static string strDatabase = "";
public static string strUID = "";
public static string strPWD = "";
public static void SetupConnection()
{
cn = new SqlConnection("Server=" + strServer + "; Database=" + strDatabase + "; UID=" + strUID + ";PWD=" + strPWD);
cn.Open();
}
}
在這個類中,大多數SQL命令都是爲了將數據插入SQL而給出的。
class DACLASS
{
public static string strUID = "";
public static string strPWD = "";
public static string strNPWD = "";
public static DataTable AccessData()
{
SqlDataAdapter da = new SqlDataAdapter("Select * from Users where Username='" + strUID + "' and Password='" + strPWD + "'", Globalconnection.cn);
DataSet ds = new DataSet();
da.Fill(ds, "USERS");
return ds.Tables[0];
}
public static void addStatue(string ID, string Name)
{
string strAddStatue = "Insert into Statues VALUES (@ID, @Name)";
SqlCommand cmdAddStatue = new SqlCommand(strAddStatue, Globalconnection.cn);
cmdAddStatue.Parameters.AddWithValue("@ID", ID);
cmdAddStatue.Parameters.AddWithValue("@Name", Name);
cmdAddStatue.ExecuteNonQuery();
}
}
以下命令來自「ADD」按鈕。
private void txtADD_Click(object sender, EventArgs e)
{
try
{
if (txtID.Text == "" || txtName.Text == "" || txtSize.Text == "" || txtTCP.Text == "" || txtMP.Text == "")
{
MessageBox.Show("ID, Name, Size, Total Cost Price and Marked Price are Mandatory", "Handicrafts");
}
else
{
DACLASS.addStatue(txtID.Text, txtName.Text);
MessageBox.Show("Statue Added", "Handicraft");
btnClear_Click(sender, e);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Handicrafts");
btnClear_Click(sender, e);
}
}
當我把空值顯示在消息框,但是當我插入正確的價值觀,我得到這個錯誤
的ExecuteNonQuery:Connection屬性尚未初始化
您需要添加'connection1.Open();' – juharr 2014-11-06 16:56:00
感謝您的更正@juharr,我編輯了我的答案。 – ekad 2014-11-06 16:57:31
+1用於'使用'語句。處理ADO.Net的正確方法。 – juharr 2014-11-06 16:58:15