データベースに簡単なINSERT
クエリを実行しています。列id
には自動生成された ID があり、別のクエリに必要です。出力方向のパラメーターを使用して生成された ID を取得できることを読んだので、次のコードを書きました。
string id;
queryString = "INSERT INTO tr_text (form, item, enabled, programID) VALUES (@myForm, @myItem, 1, @myProgramID)";
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlCommand command = new SqlCommand(queryString, connection);
connection.Open();
command.CommandText = queryString;
command.Parameters.Add("@myForm", SqlDbType.NVarChar, 50).Value = form;
command.Parameters.Add("@myItem", SqlDbType.NVarChar, 50).Value = item;
command.Parameters.Add("@myProgramID", SqlDbType.Int).Value = 1;
SqlParameter param = new SqlParameter("@id", SqlDbType.Int, 0, "id");
param.Direction = ParameterDirection.Output;
command.Parameters.Add(param);
command.ExecuteNonQuery();
id = command.Parameters["@id"].Value.ToString();
}
クエリは正しく実行されます (データベースに正しい新しいレコードがあります) が、id
変数はまだ空です! どうすればそのコードを機能させることができますか?