private void button1_Click(object sender, EventArgs e)
{
//using System.Data.SqlClient;
//INSERT文の後ろにSELECT文をくっつけておく
string sql = "INSERT INTO tblTEST(text1,text2)"
+ " VALUES (@text1,@text2);"
+ "SELECT @id = IDENT_CURRENT('tblTEST')";
using(SqlConnection con = new SqlConnection(CON_STR))
using(SqlCommand cmd = new SqlCommand(sql,con)){
con.Open();
//INSERT用のデータをセットする
cmd.Parameters.Add("@text1", SqlDbType.VarChar, 10).Value = "text1";
cmd.Parameters.Add("@text2", SqlDbType.VarChar, 10).Value = "text2";
//OUTパラメータをセットする
cmd.Parameters.Add("@id", SqlDbType.Int).Direction = ParameterDirection.Output;
//SQL実行
int result = cmd.ExecuteNonQuery();
//結果表示
System.Diagnostics.Debug.WriteLine(String.Format("Result ={0} ID={1}",result, cmd.Parameters["@id"].Value));
con.Close();
}
}
{
//using System.Data.SqlClient;
//INSERT文の後ろにSELECT文をくっつけておく
string sql = "INSERT INTO tblTEST(text1,text2)"
+ " VALUES (@text1,@text2);"
+ "SELECT @id = IDENT_CURRENT('tblTEST')";
using(SqlConnection con = new SqlConnection(CON_STR))
using(SqlCommand cmd = new SqlCommand(sql,con)){
con.Open();
//INSERT用のデータをセットする
cmd.Parameters.Add("@text1", SqlDbType.VarChar, 10).Value = "text1";
cmd.Parameters.Add("@text2", SqlDbType.VarChar, 10).Value = "text2";
//OUTパラメータをセットする
cmd.Parameters.Add("@id", SqlDbType.Int).Direction = ParameterDirection.Output;
//SQL実行
int result = cmd.ExecuteNonQuery();
//結果表示
System.Diagnostics.Debug.WriteLine(String.Format("Result ={0} ID={1}",result, cmd.Parameters["@id"].Value));
con.Close();
}
}
■実行結果(すでに10レコード入っている)
Result =1 ID=11
■DBの状態
p_key text1 text2
----------- ---------- ----------
1 NULL NULL
2 text1 text2
3 text1 text2
4 text1 text2
5 text1 text2
6 text1 text2
7 text1 text2
8 text1 text2
9 text1 text2
10 text1 text2
0 件のコメント:
コメントを投稿