ExecuteNonQuery: Connection 属性尚未初始化。

privatevoidbutton2_Click(objectsender,EventArgse){StringstrConn1="Provider=Microsoft.... private void button2_Click(object sender, EventArgs e)
{
String strConn1 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Application.StartupPath + "\\member.mdb";
OleDbConnection conn1 = new OleDbConnection(strConn1);
OleDbDataAdapter oleDbDataAdapter1 = new OleDbDataAdapter("select * from Users",conn1);
string userName = txtName.Text.Trim();
string sql = "select count(*)from Users where UserName='" + userName + "'";
conn1.Open();
OleDbCommand cmd = new OleDbCommand(sql, conn1);
int n = (int)cmd.ExecuteScalar();
if (n > 0)
{
MessageBox.Show("用户已存在");
return;
}
else
{

OleDbCommand cmd2 = new OleDbCommand ();

cmd2.CommandText = "insert into Users " + "(UserName,Sex,Password,RealName,Email,Question,Answer)" + "values (@UserName,@Sex@Password,@RealName,@Email,@Question,@Answer)";

cmd2.Parameters.Add("@UserName", OleDbType.Char, 6, "UserName");
cmd2.Parameters.Add("@Sex", OleDbType.Char, 2, "Sex");
cmd2.Parameters.Add("@RealName", OleDbType.Char, 6, "RealName");
cmd2.Parameters.Add("@Password", OleDbType.Char, 6, "Password");
cmd2.Parameters.Add("@Question", OleDbType.Char, 6, "Question");

cmd2.Parameters.Add("@Email", OleDbType.Char, 20, "Email");
cmd2.Parameters.Add("@Answer", OleDbType.Char, 10, "Answer");
cmd2.Parameters["@UserName"].Value = txtName.Text;
cmd2.Parameters["@Sex"].Value = checkedListBox1.Text;
cmd2.Parameters["@RealName"].Value = txtRealName.Text;
cmd2.Parameters["@Password"].Value = txtPwd1.Text;
cmd2.Parameters["@Question"].Value = comboBox1.Text;
cmd2.Parameters["@Email"].Value = txtEmail.Text;
cmd2.Parameters["@Answer"].Value = txtAnswer.Text;
cmd2.ExecuteNonQuery();
DataSet dataSet11 = new DataSet();
oleDbDataAdapter1.Fill(dataSet11, "Users");
conn1.Close();

555555555怎么改
展开
 我来答
百度网友2fb8851
2009-12-26 · TA获得超过118个赞
知道小有建树答主
回答量:123
采纳率:0%
帮助的人:0
展开全部
OleDbCommand cmd2 = new OleDbCommand ();
你只是把cmd2初始化了,但是没有指定它的连接啊!

你看,你初始化cmd的时候,就为他指定了 conn1 这个数据库连接。。
OleDbCommand cmd = new OleDbCommand(sql, conn1);
lcg1986
2009-12-26 · TA获得超过3374个赞
知道大有可为答主
回答量:1858
采纳率:90%
帮助的人:1618万
展开全部
一楼正解,cmd2没有指定Connection
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cockney001
2009-12-26 · TA获得超过724个赞
知道小有建树答主
回答量:529
采纳率:0%
帮助的人:233万
展开全部
cmd2 New的时候没有给他conn参数啊
要么cmd2.connection=……;
要么就OleDbCommand cmd2=New OleDbCommand(text,conn1)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
茹纯公羊元冬
2020-07-06 · TA获得超过4145个赞
知道大有可为答主
回答量:3153
采纳率:32%
帮助的人:468万
展开全部
connection
换一个变量名。
报错原因是没有初始化,就是说
没有连接上。
看一下数据库服务是否开启,数据库连接语句是否出错。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
淦菀欧阳阳冰
2019-10-26 · TA获得超过3639个赞
知道大有可为答主
回答量:3138
采纳率:33%
帮助的人:200万
展开全部
这就说明的连接代码有问题,不能正确连接到数据库。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式