SQL 参数无效
SQL parameters not working
这是我现在正在使用的代码,我没有收到任何错误,所以我无法确定它在哪里不起作用:
private void btnAdd_Click(object sender, EventArgs e)
{
string constring = $"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=" +
Directory.GetCurrentDirectory().ToString() + "\BarcodeDB.mdf;Integrated Security=True";
string query =
"INSERT INTO Products (Barcodes, Name, EDate, Quantity, Price) VALUES (@barcodeValue, @nameValue, @dateValue, @quantityValue, @priceValue) ;";
SqlConnection conDataBase = new SqlConnection(constring);
conDataBase.Open();
using (var cmd = new SqlCommand(query, conDataBase))
{
cmd.Parameters.AddWithValue("@barcodeValue", tbxBar.Text);
cmd.Parameters.AddWithValue("@nameValue", tbxName.Text);
cmd.Parameters.AddWithValue("@dateValue", dateDate.Value.Date);
cmd.Parameters.AddWithValue("@quantityeValue", tbxQua.Text);
cmd.Parameters.AddWithValue("@priceValue", tbxPrice.Text);
}
conDataBase.Close();
}
代码可能构建错误,或者我可能遗漏了一些我不确定的部分。
我发现是什么不起作用,是连接字符串。所以为此打开一个新问题。
我要做的就是打开连接然后执行命令
你实际上 运行 不是指挥官。您需要致电 ExecuteNonQuery
或 ExecuteScalar
:
using (var cmd = new SqlCommand(query, conDataBase))
{
// set parameters...
cmd.ExecuteNonQuery();
}
这是我现在正在使用的代码,我没有收到任何错误,所以我无法确定它在哪里不起作用:
private void btnAdd_Click(object sender, EventArgs e)
{
string constring = $"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=" +
Directory.GetCurrentDirectory().ToString() + "\BarcodeDB.mdf;Integrated Security=True";
string query =
"INSERT INTO Products (Barcodes, Name, EDate, Quantity, Price) VALUES (@barcodeValue, @nameValue, @dateValue, @quantityValue, @priceValue) ;";
SqlConnection conDataBase = new SqlConnection(constring);
conDataBase.Open();
using (var cmd = new SqlCommand(query, conDataBase))
{
cmd.Parameters.AddWithValue("@barcodeValue", tbxBar.Text);
cmd.Parameters.AddWithValue("@nameValue", tbxName.Text);
cmd.Parameters.AddWithValue("@dateValue", dateDate.Value.Date);
cmd.Parameters.AddWithValue("@quantityeValue", tbxQua.Text);
cmd.Parameters.AddWithValue("@priceValue", tbxPrice.Text);
}
conDataBase.Close();
}
代码可能构建错误,或者我可能遗漏了一些我不确定的部分。
我发现是什么不起作用,是连接字符串。所以为此打开一个新问题。
我要做的就是打开连接然后执行命令
你实际上 运行 不是指挥官。您需要致电 ExecuteNonQuery
或 ExecuteScalar
:
using (var cmd = new SqlCommand(query, conDataBase))
{
// set parameters...
cmd.ExecuteNonQuery();
}