我是新手,问题代码如下:
private void button1_Click(object sender, EventArgs e)
{
string connstr = @"Provider = Microsoft.Jet.OLEDB.4.0; Data Source = C:\Users\z\Desktop\date1.mdb"; OleDbConnection conn = new OleDbConnection(connstr);
conn.Open();
OleDbCommand command = conn.CreateCommand();
command.CommandText = "insert into 表1(姓名,学号,数学,语文,英语,总分) values('" + textBox1.Text + "','" + textBox2.Text + "','" + textBox3.Text + "','" + textBox4.Text + "','" + textBox5.Text + "','" + textBox6.Text + "')";
command.ExecuteNonQuery();
conn.Close();
} 编译没问题,运行的时候说我的ExecuteNonQuery();存在语法错误,跪求高人指点。
private void button1_Click(object sender, EventArgs e)
{
string connstr = @"Provider = Microsoft.Jet.OLEDB.4.0; Data Source = C:\Users\z\Desktop\date1.mdb"; OleDbConnection conn = new OleDbConnection(connstr);
conn.Open();
OleDbCommand command = conn.CreateCommand();
command.CommandText = "insert into 表1(姓名,学号,数学,语文,英语,总分) values('" + textBox1.Text + "','" + textBox2.Text + "','" + textBox3.Text + "','" + textBox4.Text + "','" + textBox5.Text + "','" + textBox6.Text + "')";
command.ExecuteNonQuery();
conn.Close();
} 编译没问题,运行的时候说我的ExecuteNonQuery();存在语法错误,跪求高人指点。
private void button1_Click(object sender, EventArgs e)
{
string connstr = @"Provider = Microsoft.Jet.OLEDB.4.0; Data Source = C:\Users\z\Desktop\date1.mdb"; OleDbConnection conn = new OleDbConnection(connstr);
conn.Open();
string strSQL = "insert into 表1(姓名,学号,数学,语文,英语,总分) values('" + textBox1.Text + "','" + textBox2.Text + "','" + textBox3.Text + "','" + textBox4.Text + "','" + textBox5.Text + "','" + textBox6.Text + "')";
Response.Write(strSQL); //输出SQL语句,然后拿到SQL 查询分析器中执行一下看看,或是你贴出输出内容来看看
OleDbCommand command = new OleDbCommand(strSQL,conn);
command.ExecuteNonQuery();
conn.Close();
}
OleDbCommand.Connection设置了么?OleDbCommand.Connection=conn;
不用加了,你connection的构造函数里面已经写了。。OleDbConnection conn = new OleDbConnection(connstr);
这句代码的下一句时,将鼠标移到strSQL上就能获取strSQL的值了(或者鼠标移到strSQL上,右键,添加监视也行),再到sql查询分析器中执行一遍代码,看看执行是否成功
是执行一遍获取到的strSQL值
数字都不加引号的哦哦。忘记了,你用的access数据库不过你那个insert语句放到ms sql server查询分析器中也可以看看有没有语法错误。。
建议先用ms sql server数据库,简单、方便、易操作……
我打了断点了
这是strSQL的值
insert into 表1(姓名,学号,数学,语文,英语,总分) values('周','2010101146','100','100','100','300')
你确定你的“姓名,学号,数学,语文,英语,总分”这些字段在数据库里面都是字符串类型的???那么你看看“values('周','2010101146','100','100','100','300')”这里面的单引号和逗号是不是都是“英文”(半角)的
运行结果是command.ExecuteNonQuery();有语法错误
问题出在SQL语句
表名,列名不要用中文,符号用英文打.
自已调试下
{
string connstr = @"Provider = Microsoft.Jet.OLEDB.4.0; Data Source = C:\Users\z\Desktop\date1.mdb"; OleDbConnection conn = new OleDbConnection(connstr);
conn.Open();
string strSQL = "insert into 表1(姓名,学号,数学,语文,英语,总分) values('" + textBox1.Text + "','" + textBox2.Text + "','" + textBox3.Text + "','" + textBox4.Text + "','" + textBox5.Text + "','" + textBox6.Text + "')";
OleDbCommand command = new OleDbCommand(strSQL,conn);
command.ExecuteNonQuery();
conn.Close();
}
字段最好不要用中文
这位哥我想问下,突然想起来,我没装SQL,这会不会是导致我错误的原因
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.OleDb;
using System.Data;public partial class _Default : System.Web.UI.Page
{
//将cofcms.mdb放到程序的跟路劲下
string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + HttpContext.Current.Server.MapPath("cofcms.mdb");
string strSQL;//sql与语句
protected void Page_Load(object sender, EventArgs e)
{
using (OleDbConnection conn = new OleDbConnection(connectionString))
{
using (OleDbCommand cmd = new OleDbCommand())
{
strSQL = "insert into contents values(4,'测试',7,'新闻内容',1)";//注意这行是写死的,自己可以对照着修改一下。(词条语句只能执行一遍,因为此表中有约束)
cmd.Connection = conn;
cmd.CommandType = CommandType.Text;
cmd.CommandText = strSQL;
conn.Open();
int result = cmd.ExecuteNonQuery();//执行 if (result == 1)
{
Response.Write("添加成功!");
}
else
{
Response.Write("失败!");
}
}
}
}
}
先用你下载的按个数据库。什么防注入啊、代码规范啊……先不管它了先让程序运行起来再说!好运!
没解决,我试着用SQL做了
(青云-北京CFO)向如此热心的人致敬~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
string strSQL = "insert into 表1(姓名,学号,数学,语文,英语,总分) values('" + textBox1.Text + "','" + textBox2.Text + "','" + textBox3.Text + "','" + textBox4.Text + "','" + textBox5.Text + "','" + textBox6.Text + "')";改成string strSQL = string.Format("insert into 表1(姓名,学号,数学,语文,英语,总分) values ('{0}','{1}','{2}','{3}','{4}','{5}')", textBox1.Text, textBox2.Text, textBox3.Text, textBox4.Text, textBox5.Text, textBox6.Text);
试试