insert into插入数据库时语法出错
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了insert into插入数据库时语法出错相关的知识,希望对你有一定的参考价值。
public partial class register : System.Web.UI.Page
protected void Page_Load(object sender, EventArgs e)
protected void Button1_Click(object sender, EventArgs e)
string cnstring = @"Data Source=.\SQLEXPRESS;AttachDbFilename=" + Server.MapPath("") + @"\App_Data\Database.mdf;Integrated Security=True;User Instance=True"; //本地数据库文件
DataTable dt = new DataTable("tmp");
SqlDataAdapter da = new SqlDataAdapter("select mm from users where xh='" + TextBox1.Text + "'", cnstring);
da.Fill(dt);
if (dt.Rows.Count > 0)
Label1.Text="该学号已被注册";
else if(TextBox2.Text!=TextBox3.Text)
Label1.Text = "两次密码输入不一致";
string uxh = TextBox1.Text.ToString();
string umm = TextBox2.Text.ToString();
string uxm = TextBox4.Text.ToString();
string uxy = TextBox5.Text.ToString();
string usd = TextBox6.Text.ToString();
string uss = TextBox7.Text.ToString();
string sql = string.Format("insert into users(xh,mm,xm,xy,sd,ss) values(uxh, umm, uxm, uxy, usd, uss)");
SqlConnection sqlcon=new SqlConnection();
sqlcon.ConnectionString=cnstring;
sqlcon.Open();
SqlCommand sqlcmd = new SqlCommand(sql,sqlcon);
sqlcmd.ExecuteNonQuery();
sqlcon.Close();
Label1.Text = "注册成功,请按返回进入登陆页面";
数据库放在App_data,有id,xh,mm,xm,xy,sd,ss列,id设为标识列,运行没提示错误,网页按提交时同时出错,“' ' 附近有语法错误”,请高手解答
插入语句写错了:
//insert into databasestring xh = SQLString.GetSafeSqlString(DropDownList1.Text);
string mm = SQLString.GetSafeSqlString(TB.Text);
//后面的xm,xy,sd,ss我就不一一写了,如果嫌麻烦就把sql语句后面的xh等直接换成TextBox.Text之类的
string sql = string.Format("insert into users(xh,mm,xm,xy,sd,ss) values('0','1','2','3','4','5')",xh,mm,xm,xy,sd,ss);
//下面是通过数据集绑定的数据库
// DataBase db = new DataBase();
// db.GetDataSetSql(sql);
如果你的后台数据库设置了id为主键不为空,那又会出现错误。插入时需要把id也写进sql语句,如:
string sql = string.Format("insert into users(id,xh,mm,xm,xy,sd,ss) values('0','1','2','3','4','5','6')",id,xh,mm,xm,xy,sd,ss);id就自己定义了,自增或是其他的都可以。
个人意见,仅供参考。
参考技术Axh是字符串类型还是数字类型
mm,xm,xy,sd,ss分别是什么类型
users 表名有可能与关键字重复,两边加上中括号改成[users]
改了上面两点再看其他的
追问要怎么声明xh,mm,xm,xy,sd,ss的类型呢?前四个是字符串,后两个是int,要怎么改呢?
追答总之sql语句的规则就是字符串两边要加单引号,数字两边不加。建议你网上多搜搜怎么拼接sql字符串。
参考技术B string sql = string.Format("insert into users(xh,mm,xm,xy,sd,ss) values(‘0’, ‘1’,‘2’,‘3’, ‘4’,‘5’)",(uxh, umm, uxm, uxy, usd, uss);你自己吧变量放在引号里面 那就成字符串了 相当于你在 数据库 直接执行的语句就是
insert into users(xh,mm,xm,xy,sd,ss) values(uxh, umm, uxm, uxy, usd, uss)
而值确没传进去!~ 参考技术C 用我的 吧 你修改一下
string ConnStr = "Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirectory|\\Database1.mdf;Integrated Security=True;User Instance=True";
(你用你的这个"Data Source=.\SQLEXPRESS;AttachDbFilename=" + Server.MapPath("") + @"\App_Data\Database.mdf;Integrated Security=True;User Instance=True"; )
SqlConnection conn = new SqlConnection(ConnStr);
conn.Open();
SqlCommand mon = conn.CreateCommand();
mon.CommandText = "insert into users values ('" + TextBox1.Text + "','" + TextBox2.Text + "','" + TextBox4.Text + "','" + TextBox5.Text + "','" + TextBox6.Text + "','" + TextBox7.Text + "')";
try
int a = mon.ExecuteNonQuery();
Label3.Text = "注册成功!";
catch (Exception ee)
Label1.Text = "用户名存在!";
if (TextBox1.Text == "")
Label1.Text = "请输入用户名!";
if (TextBox2.Text == "")
Label2.Text = "请输入密码!";
if ((TextBox2.Text) == (TextBox3.Text))
Label2.Text = "两次密码相同!";
你把你的string uxh = TextBox1.Text.ToString();
string umm = TextBox2.Text.ToString();
string uxm = TextBox4.Text.ToString();
string uxy = TextBox5.Text.ToString();
string usd = TextBox6.Text.ToString();
string uss = TextBox7.Text.ToString();
string sql = string.Format("insert into users(xh,mm,xm,xy,sd,ss) values(uxh, umm, uxm, uxy, usd, uss)");
删掉
insert 语句 改成 SqlCommand sqlcmd = new SqlCommand("写insert 语句",sqlcon); 或者string sql="insert 语句";
SqlCommand sqlcmd = new SqlCommand(sql,sqlcon); 你的 SqlDataAdapter da = new SqlDataAdapter("select mm from users where xh='" + TextBox1.Text + "'", cnstring);
da.Fill(dt);
if (dt.Rows.Count > 0)
Label1.Text="该学号已被注册";
else if(TextBox2.Text!=TextBox3.Text)
Label1.Text = "两次密码输入不一致";
自己加上就可以了
以上是关于insert into插入数据库时语法出错的主要内容,如果未能解决你的问题,请参考以下文章
向access数据库插入出现“insert into 语法错误”
MySQL关联表插入数据(insert into select语法)