0

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();

問題は何ですか?

4

1 に答える 1

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) 入力パラメータの値は何ですか?

幸運を、

ダビデ。

于 2013-03-28T12:40:38.823 に答える