为什么我的“插入”没有插入数据库?

时间:2013-03-28 12:31:42

标签: c# sql winforms

我在Visual Studio中使用C#创建了一个WinForms应用程序。当我运行以下代码时,它不会给出错误,但没有数据插入到数据库表中。

代码:

string dbfile = Properties.Settings.Default.CTMSConnectionString1;

SqlConnection con = new SqlConnection(dbfile);
con.Open();

SqlCommand insert = new SqlCommand("Insert into Temptranstion (CustomerID, ProductName,Quantity,Price,DateTime ) Values (@CustomerID,@ProductName,@Quantity,@Price,@DateTime)", con);
insert.Parameters.AddWithValue ("@CustomerID ",comboBox1.SelectedValue);
insert.Parameters.AddWithValue ("@ProductName",textBox6.Text);
insert.Parameters.AddWithValue ("@Quantity",textBox7.Text);
insert.Parameters.AddWithValue ("@Price",textBox8.Text);
insert.Parameters.AddWithValue ("@DateTime",DateTime.Now);
insert.ExecuteNonQuery();

问题可能是什么?

1 个答案:

答案 0 :(得分:0)

创建和使用ADO.NET SQL连接和命令的最新模式位于嵌套的using语句中,如下所示:

using (var connection = new SqlConnection(dbfile))
using(var command = connection.CreateCommand())
{
    connection.Open();

    command.CommandText = "Insert into Temptranstion (CustomerID, ProductName,Quantity,Price,DateTime ) Values (@CustomerID,@ProductName,@Quantity,@Price,@DateTime)";
    command.Parameters.AddWithValue ("@CustomerID ",comboBox1.SelectedValue);
    command.Parameters.AddWithValue ("@ProductName",textBox6.Text);
    command.Parameters.AddWithValue ("@Quantity",textBox7.Text);
    command.Parameters.AddWithValue ("@Price",textBox8.Text);
    command.Parameters.AddWithValue ("@DateTime",DateTime.Now);
    command.ExecuteNonQuery();
}

请注意我没有运行此代码,我只是简单地重构了你的代码,无论发生什么,连接和命令总是关闭和处理。

如果您仍然无法在数据库中看到新记录,则可能是原因:

1)你的连接字符串是什么样的?

2)您是在检查正确的目标数据库,还是在每次执行时都重新部署了数据库?

3)输入参数中的值是什么?

祝你好运,

的Davide。