日期:2014-05-18  浏览次数:21155 次

insert into 语法错误
各位大神们,这个问题一直没解决,我在图书馆和实验室参考了很多资料,无奈我们都是菜鸟。。。vs可以运行,access数据库也设置了信任位置。
鞠躬,不是,我给跪了...


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.OleDb;


public partial class _Default : System.Web.UI.Page
{
  protected void Page_Load(object sender, EventArgs e)
  {

  }
  protected void Button1_Click(object sender, EventArgs e)
  {
  string strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Z:\\数据库\\135.mdb";
  OleDbConnection myConn = new OleDbConnection("Provider = Microsoft.Jet.OLEDB.4.0;Data Source=" + strCon + ";");
  myConn.Open();
  if (myConn.State == ConnectionState.Open)
  {
  Label1.Text = "Access数据库打开";
  myConn.Close();
  }
  if (myConn.State == ConnectionState.Closed)
  {
  Label2.Text = "Access数据库关闭";
  }

  }
  protected void Button2_Click(object sender, EventArgs e)
  {
  string strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Z:\\数据库\\135.mdb";
  OleDbConnection myConn = new OleDbConnection("Provider = Microsoft.Jet.OLEDB.4.0;Data Source=" + strCon + ";");
  string strsql = "insert into 135.mdb_表1(姓名,年龄)values ('" + TextBox1.Text + "','" + TextBox2.Text + "')";
  OleDbCommand comm = new OleDbCommand(strsql, myConn);
  if (myConn.State == ConnectionState.Closed)
  {
  myConn.Open();
  }
  if (Convert.ToInt32(comm.ExecuteNonQuery()) > 0)//这里是提示出错的地方
  {
  Label3.Text = "添加成功!";
  }
  else
  {
  Label3.Text = "添加失败!";
  }

  myConn.Close();


  }
}


------解决方案--------------------
135.mdb_表1(姓名,年龄)能这样写表名字么?

可以在strsql个地方放一个断点,看看sql语句是什么然后放到access里面进行一下调试!
------解决方案--------------------
string strsql = "insert into [135.mdb_表1](姓名,年龄) values (@name,@age)";
OleDbCommand comm = new OleDbCommand(strsql, myConn);
comm.Parameters.AddWithValue("@name",TextBox1.Text);
comm.Parameters.AddWithValue("@age",TextBox2.Text)

另外,你的
([姓名],[年龄])
中全角的括号,要改成半角的

------解决方案--------------------
tring strsql = "insert into [135.mdb_表1]([姓名],[年龄])values ('" + TextBox1.Text + "','" + TextBox2.Text + "')";
确实这是个中文括号,改成英文括号
------解决方案--------------------
另外,你的
([姓名],[年龄])
中全角的括号,要改成半角的