我需要将所有这些值保存在数据库中。我的表包含这些字段ID(Id是自动生成),密码,名称,Department_Name,Email_Address。 此代码生成错误。这是我的代码 -
OleDbCommand cmd = new OleDbCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = @"INSERT INTO Login(Password,Name,Department_Name,Email_Address)
Values(@Password,@Name,@Department_Name,@Email_Address)";
cmd.Parameters.AddWithValue("@Password",passwordBox1.Password);
cmd.Parameters.AddWithValue("@Name", textBox2.Text);
cmd.Parameters.AddWithValue("@Department_Name", textBox3.Text);
cmd.Parameters.AddWithValue("@Emial_Address", textBox4.Text);
cmd.Connection = con;
con.Open();
cmd.ExecuteNonQuery();
con.Close();
错误是 -
INSERT INTO语句中的语法错误。
答案 0 :(得分:3)
这不太可能是问题,但值得尝试:@Email_Address在设置参数值时拼写为@Emial_Address。
问题可能是登录名和密码可以是数据库中的保留字。尝试更改:
`cmd.CommandText = "INSERT INTO Login (Password,Name,Department_Name,Email_Address) Values (@Password,@Name,@Department_Name,@Email_Address)";`
要 -
`cmd.CommandText = "INSERT INTO [Login] ([Password],Name,Department_Name,Email_Address) Values (@Password,@Name,@Department_Name,@Email_Address)";`
答案 1 :(得分:2)
尝试
"INSERT INTO [Login] ...."
登录是一个SQL关键字,所以用方括号包围它应该可以。
Reniuz也发表了他的评论 - Email_Address参数拼写错误(但这不会导致错误)。
答案 2 :(得分:1)
如果您发布了正在使用的确切代码,则在添加电子邮件地址时参数名称拼写错误:
cmd.Parameters.AddWithValue("@Emial_Address", textBox4.Text);
另外,正如其他海报所指出的那样,您在查询中使用SQL保留关键字,登录,并且需要用方括号括起来:
"INSERT INTO [Login] (..."
答案 3 :(得分:0)
您对命令文本
尝试此查询cmd.CommandText = "INSERT INTO Login(Password,Name,Department_Name,Email_Address)
Values('" + passwordBox1.Password + "', '" + textBox2.Text + "', '" +textBox3.Text+ "','"+textBox4.Text+"')";
答案 4 :(得分:-1)
试试这个:
OleDbCommand cmd = new OleDbCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = "INSERT INTO Login(Password,Name,Department_Name,Email_Address) Values('"+passwordBox1.Password+"','"+textBox2.Text+"','"+textBox3.Text+"','"+textBox4.Text+"')";
con.Open();
cmd.Connection=con;
cmd.ExecuteNonQuery();
con.Close();
也将命令引用到连接,它不知道它正在执行哪个连接。