ここで何が間違っているのかわかりません。デバッガーでブレークポイントを設定すると、文字列にはすべて文字列値が含まれますが、それらをテーブルに挿入するときは何も挿入されません。
テーブルは次のように定義されます
CREATE TABLE [dbo].[tblMissEvents] (
[EventID] INT IDENTITY (1, 1) NOT NULL,
[EventTime] NVARCHAR (MAX) NULL,
[MIS_Event_Action] VARCHAR (50) NULL,
[Bogey_Type] VARCHAR (50) NULL,
PRIMARY KEY CLUSTERED ([EventID] ASC)
);
私のコード:
string date = DateTime.Now.ToString();
string MISaction = text1.Text;
string BogeyType = text2.Text;
try
{
con = new SqlConnection();
con.ConnectionString =
@"data source=(LocalDB)\v11.0;attachdbfilename=|DataDirectory|\MissileEvents.mdf;integrated security=True;MultipleActiveResultSets=True;Connect Timeout=30";
con.Open();
SqlCommand cmd = new SqlCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText =
"INSERT into tblMissEvents (EventTime, MIS_Event_Action, Bogey_Type) Values (@date, @MISaction, @BogeyType)";
cmd.Parameters.AddWithValue("@date", date);
cmd.Parameters.AddWithValue("@MISaction", MISaction);
cmd.Parameters.AddWithValue("@BogeyType", BogeyType);
cmd.Connection = con;
cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
con.Close();
何かご意見は??例外は発生しません。テーブルにエントリがないだけです。
Arshadの編集:
con = new SqlConnection();
con.ConnectionString =
@"data source=(LocalDB)\v11.0;attachdbfilename=|DataDirectory|\MissileEvents.mdf;integrated security=True;MultipleActiveResultSets=True;Connect Timeout=30";
con.Open();
SqlCommand cmd = new SqlCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText =
"INSERT into tblMissEvents (MIS_Event_Action, Bogey_Type) Values (@date, @MISaction, @BogeyType)";
cmd.Parameters.AddWithValue("@date", date);
cmd.Parameters.AddWithValue("@MISaction", MISaction);
cmd.Parameters.AddWithValue("@BogeyType", BogeyType);
cmd.Connection = con;
cmd.ExecuteNonQuery();
更新:: コードは問題ありませんでした。bin\Debug ディレクトリに DB のコピーを作成していて、そこにすべてのデータが移動していました。おそらく、接続文字列の設定に何か問題があります。皆さんありがとう!