我的数据库连接出了什么问题
本文关键字:什么 问题 数据库连接 我的 | 更新日期: 2023-09-27 18:34:23
我正在尝试向我的数据库发送此查询,但它一直让我输入无效,我不知道出了什么问题?
private void button1_Click(object sender, EventArgs e)
{
string connectionString =@"Data Source=.'SQLEXPRESS;AttachDbFilename=|DataDirectory|'Database1.mdf;Integrated Security=True;User Instance=True";
using (SqlConnection connection = new SqlConnection(connectionString))
{
using (SqlCommand command = new SqlCommand(
"INSERT INTO Customer(Name,Telephone,Address,[Register Date]) VALUES(" + v_name + "," + telephone + "," + address + "," + date + ")", connection))
{
try
{
connection.Open();
string result = (string)command.ExecuteScalar();
MessageBox.Show("Region = " + result);
MessageBox.Show("You have Registered Succesfully");
}
catch(Exception ex)
{
MessageBox.Show("Invalid input");
Form1 st = new Form1();
st.Show();
}
}
}
}
我在您的连接中没有看到任何问题,但我看到如何执行您的命令存在问题。
ExecuteScalar
返回第一列的第一行的数据。但是您的 INSERT
语句不会返回任何数据。您需要改用ExecuteNonQuery
。
并且应始终使用参数化查询。这种字符串串联对SQL注入攻击是开放的。
using(SqlConnection connection = new SqlConnection(connectionString))
using(SqlCommand command = connection.CreateCommand())
{
cmd.CommandText = @"INSERT INTO Customer(Name,Telephone,Address,[Register Date])
VALUES(@name, @tel, @address, @date)";
// Add your parameter values with SqlParameterCollection.Add() method.
try
{
connection.Open();
command.ExecuteNonQuery();
}
catch(Exception ex)
{
//
}
}
我认为错误出在您的QRY中。如果 db 字段是 nvarchar,则 u 应该在 '' 之间传递值。您的QRY如下所示:
"INSERT INTO Customer(Name,Telephone,Address,[Register Date]) VALUES('" + v_name + "','" + telephone + "','" + address + "','" + date + "')"