insert into插入数据库时语法出错

2025-03-24 21:17:53
推荐回答(4个)
回答1:

 插入语句写错了:

 //insert into database
  string 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就自己定义了,自增或是其他的都可以。

个人意见,仅供参考。

回答2:

  1. xh是字符串类型还是数字类型

  2. mm,xm,xy,sd,ss分别是什么类型

  3. users 表名有可能与关键字重复,两边加上中括号改成[users]

改了上面两点再看其他的

回答3:

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)
而值确没传进去!~

回答4:

用我的 吧 你修改一下
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 = "两次密码输入不一致";
} 自己加上就可以了