【发布时间】:2019-05-22 14:53:39
【问题描述】:
我在使用 C# 中的参数插入 SQL 数据库时遇到问题。我的连接已经在工作了
我已经尝试了 Add,AddWithValue
static void parameter_insert(SqlConnection conn, int number)
{
try
{
conn.Open();
SqlCommand command = new SqlCommand(@"INSERT INTO test1.dbo.shopping_list(NAME, QUANTITY, QUALITY, FOOD_GROUP, FOODS VALUES('Bread', @Quantity, 'Poor', 'Carbs', 'Good')", conn);
command.Parameters["@Quantity"].Value = 3;
command.ExecuteNonQuery();
Console.WriteLine("Parameter insertion successful.");
}
catch
{
Console.WriteLine("Parameter insertion failed.");
}
}
输出让我插入失败
【问题讨论】:
-
捕获异常并查看它的内容。你的 SQL 是错误的。看起来您在列列表周围缺少括号。
-
异常说明了什么?这将是找到问题的第一步。如果我们只知道出了点问题,那么编程将变得更加困难,我们必须通过阅读代码和猜测或反复试验来解决问题。
-
删除
catch及其无意义的错误消息。你应该得到一个语法错误,它实际上告诉你问题是什么。 (或者首先是一个IndexOutOfRangeException用于您没有添加到集合中的参数。)正确的异常处理至少会涉及catch (SqlException e) { Console.WriteLine("Insertion failed: " + e.Message); }之类的东西。 -
只是添加一些东西,你应该在使用完后立即关闭它
-
这可能会因为印刷错误而关闭。他们缺少列列表周围的右括号。