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

请问错在哪里,分不多,多谢大家了

2012-05-28 
请教错在哪里,分不多,谢谢大家了string strCon1 Data Source + Server.MapPath(aaa.accdb)string

请教错在哪里,分不多,谢谢大家了
string strCon1 = "Data Source =" + Server.MapPath("aaa.accdb");
  string strCon = "Provider=Microsoft.ACE.OLEDB.12.0;Persist Security Info=false;" + strCon1;
  OleDbConnection conn = new OleDbConnection();
  conn.ConnectionString = strCon;

  String insertCmd = "insert into azhou (名称) values (@f)";
  OleDbCommand myCommand = new OleDbCommand(insertCmd, conn);

  myCommand.Parameters.Add(new OleDbParameter("@f", OleDbType.VarChar, 11));
  myCommand.Parameters["@f"].Value = TextBox1.Text;

  myCommand.Connection.Open();

  try
  {
  myCommand.ExecuteNonQuery();
  Message.InnerHtml = "<b>Record Added</b><br>" + insertCmd.ToString();
  }
  catch (SqlException ea)
  {
  if (ea.Number == 2627)
  Message.InnerHtml = "ERROR: A record already exists with the same primary key";
  else
  Message.InnerHtml = "ERROR: Could not add record, please ensure the fields are correctly filled out";
  Message.Style["color"] = "red";
  }

  myCommand.Connection.Close();  
  BindGrid();

  }


有3个问题:
1 为什么我去掉try 和catch里的内容就不能添加东西了。程序能运行。只是点按钮的时候添加不进去东西,也没有报错。。当然,如果不去掉一切正常。
2 String insertCmd = "insert into azhou (名称) values (@f)";这句话我想问一下,因为一些原因导致我很迷惑,括号内的名称是数据库里的字段名? 后面的@f是变量吗?

没有分数了,不好意思。等富裕了会回报的。

[解决办法]
myCommand.ExecuteNonQuery();这句是关键,执行insert语句。去掉try里的东西当然不行。

@f是参数名,参数值是TextBox1.Text;
[解决办法]

探讨

myCommand.ExecuteNonQuery();这句是关键,执行insert语句。去掉try里的东西当然不行。

@f是参数名,参数值是TextBox1.Text;

[解决办法]
try中的语句是执行插入数据用的,去掉就自然不能插入数据了。
catch是出现异常显示错误的,
这里sql是用的参数方式执行插入,@f就是参数,它的值在下面的语句中赋给,
myCommand.Parameters.Add(new OleDbParameter("@f", OleDbType.VarChar, 11)); //定义参数类型
myCommand.Parameters["@f"].Value = TextBox1.Text; //赋给参数值

热点排行