我一直试图使用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