1

最後に挿入された ID を取得したい場合にステートメントをどこに置くSELECT SCOPE_IDENTITY()か、他の挿入クエリ内に配置しましたが、何も得られません..

SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString);

connection.Open();

string insACmd = "insert into admin (userName, password) values (@userName, @password) SELECT SCOPE_IDENTITY();";
SqlCommand insertAdmin = new SqlCommand(insACmd, connection);

insertAdmin.Parameters.AddWithValue("@userName", TextBox1.Text);
insertAdmin.Parameters.AddWithValue("@password", TextBox2.Text);

string insertedID = insertAdmin.ExecuteScalar().ToString();

connection.Close(); 

ありがとう。

4

2 に答える 2

0

try this `

SELECT UserId=SCOPE_IDENTITY()

that is if you are using UserId, as the key

于 2012-06-24T09:17:58.320 に答える
0
using (SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString))
{
    connection.Open();
    string insACmd = "insert into admin (userName, password) values (@userName, @password); DECLARE @ID INT OUTPUT; SET @ID=SCOPE_IDENTITY()";
    using (SqlCommand insertAdmin = new SqlCommand(insACmd, connection))
    {
        insertAdmin.Parameters.AddWithValue("@userName", TextBox1.Text);
        insertAdmin.Parameters.AddWithValue("@password", TextBox2.Text);

        SqlParameter p = new SqlParameter();
        p.ParameterName = "@ID";
        p.Size = 4;
        p.Direction = ParameterDirection.Output;
        insertAdmin.Parameters.Add(p);
        insertAdmin.ExecuteNonQuery();
        int idOut = (int)p.Value;
        connection.Close();
    }
}
于 2012-06-24T10:42:05.753 に答える