首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

cmd.ExecuteNonQuery()出错,求教,该如何处理

2012-02-13 
cmd.ExecuteNonQuery()出错,求教protected void Button1_Click(object sender, EventArgs e){try{OleDbCon

cmd.ExecuteNonQuery()出错,求教
protected void Button1_Click(object sender, EventArgs e)
  {
  try
  {
  OleDbConnection dbconn = connection.geton();
  OleDbDataAdapter da = new OleDbDataAdapter(@"select * from userinfo", dbconn);
  DataSet ds = new DataSet(); 
  da.Fill(ds, "userinfo");
  bool n = true;
  for (int m = 0; m < ds.Tables[0].Rows.Count; m++)
  {
  if (ds.Tables[0].Rows[m][0].ToString() == TextBox1.Text)
  {

  n = false;

  }
  }
  if (n)
  {
  OleDbCommand cmd = new OleDbCommand("INSERT INTO userinfo(name,password) values(@name,@password)", dbconn);
  OleDbParameter nameparam = new OleDbParameter("@name", TextBox1.Text);
  OleDbParameter passwordparam = new OleDbParameter("@password", TextBox2.Text);
  cmd.Parameters.Add(nameparam);
  cmd.Parameters.Add(passwordparam);
  int j = cmd.ExecuteNonQuery();
  if (j > 0)
  Response.Write("<script laguage='javascript'>alert('注册成功');</script>");
  else
  Response.Write("<script laguage='javascript'>alert('注册失败');</script>");
  dbconn.Close();
  }
  else
  {
  Response.Write("<script laguage='javascript'>alert('此用户名已被注册');</script>");
  TextBox1.Text = "";
  }
  }
  catch(Exception ex)
  {
  Response.Write(ex.ToString());

  }
   
  }


错误提示
System.Data.OleDb.OleDbException (0x80040E14): INSERT INTO 语句的语法错误。 在 System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(OleDbHResult hr) 在 System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult) 在 System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult) 在 System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult) 在 System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method) 在 System.Data.OleDb.OleDbCommand.ExecuteNonQuery() 在 csharp.Register.Button1_Click(Object sender, EventArgs e) 位置 F:\程序\csharp\Backup\Backup\Backup\csharp\Register.aspx.cs:行号 46

[解决办法]
可能应该这样 INSERT INTO userinfo([name],[password]) values(@name,@password)
还有 dbconn似乎没有open
[解决办法]
protected void Button1_Click(object sender, EventArgs e)
{
try
{
OleDbConnection dbconn = connection.geton();
OleDbDataAdapter da = new OleDbDataAdapter("select * from userinfo", dbconn); //画蛇添足,去掉@
DataSet ds = new DataSet(); 
da.Fill(ds, "userinfo");
bool n = true;
for (int m = 0; m < ds.Tables[0].Rows.Count; m++)
{
if (ds.Tables[0].Rows[m][0].ToString() == TextBox1.Text)
{

n = false;

}
}
if (n)
{
OleDbCommand cmd = new OleDbCommand("INSERT INTO userinfo([name],[password]) values(@name,@password)", dbconn); //Access中的关键字,需要加[]


OleDbParameter nameparam = new OleDbParameter("@name", TextBox1.Text);
OleDbParameter passwordparam = new OleDbParameter("@password", TextBox2.Text);
cmd.Parameters.Add(nameparam);
cmd.Parameters.Add(passwordparam);
int j = cmd.ExecuteNonQuery();
if (j > 0)
Response.Write("<script laguage='javascript'>alert('注册成功');</script>");
else
Response.Write("<script laguage='javascript'>alert('注册失败');</script>");
dbconn.Close();
}
else
{
Response.Write("<script laguage='javascript'>alert('此用户名已被注册');</script>");
TextBox1.Text = "";
}
}
catch(Exception ex)
{
Response.Write(ex.ToString());

}
 
}

热点排行