首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >插入误差ASP.NET

插入误差ASP.NET
EN

Stack Overflow用户
提问于 2013-05-09 16:06:16
回答 2查看 317关注 0票数 1

嘿,我看到一个错误,当我的代码插入到数据库时,我的代码有问题,但是找不到。该错误表明它是INSERT语句中的某个内容,但出现在行"cmd.ExecuteNonQuery();"中。我用的是access数据库。

错误:插入语句中的语法错误.

代码语言:javascript
复制
con.Open();
string mysql; 
mysql = "INSERT INTO [User](FirstName,Surname,Age,HouseNumber,PostCode,Username,Password) 
         VALUES (?,?,?,?,?,?,?)";
OleDbCommand cmd = new OleDbCommand(mysql, con);
cmd.Parameters.AddWithValue("@p1", tbFirstName.Text);
cmd.Parameters.AddWithValue("@p2", tbSurname.Text);
cmd.Parameters.AddWithValue("@p3", int.Parse(tbAge.Text));
cmd.Parameters.AddWithValue("@p4", tbAddress1.Text);
cmd.Parameters.AddWithValue("@p5", tbPostCode.Text);
cmd.Parameters.AddWithValue("@p6", tbUsername.Text);
cmd.Parameters.AddWithValue("@p7", tbPassword.Text);
cmd.ExecuteNonQuery();
con.Close();
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-09 16:14:33

当添加带有值的参数时,需要将其转换为匹配类型,如果年龄是数字,则

代码语言:javascript
复制
cmd.Parameters.AddWithValue("@p3", int.Parse(tbAge.Text));

还有你可以尝试的 is key word

代码语言:javascript
复制
"INSERT INTO [User] ([FirstName], [Surname], [Age], [HouseNumber], [PostCode], [Username], [Password]) VALUES (?,?,?,?,?,?,?)";
票数 5
EN

Stack Overflow用户

发布于 2013-05-09 16:30:29

您试过用参数替换?吗?

更正:我认为您必须像这样添加OleDBParameters

代码语言:javascript
复制
con.Open();
string mysql; 
mysql = "INSERT INTO User(FirstName,Surname,Age,HouseNumber,PostCode,Username,Password) 
     VALUES (@p1,@p2,@p3,@p4,@p5,@p6,@p7)";
OleDbCommand cmd = new OleDbCommand(mysql, con);
cmd.Parameters.AddRange(new OleDbParameter[]
{
    new OleDbParameter("@p1", tbFirstName.Text),
    new OleDbParameter("@p2", tbSurname.Text),
           ...
});
cmd.ExecuteNonQuery();
con.Close();
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16466198

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档