string conn_str = GetConnectionStrings();
using (SqlConnection con = new SqlConnection(conn_str))
{
con.Open();
string cmd_text = @"insert into [name] Values (@name)";
using (SqlCommand cmd = new SqlCommand(cmd_text, con))
{
cmd.Parameters.Add("@name", System.Data.SqlDbType.VarChar).Value = "name";
cmd.ExecuteNonQuery();
}
cmd_text = @"SELECT SCOPE_IDENTITY() as [S_I]";
using (SqlCommand cmd = new SqlCommand(cmd_text, con))
{
cmd.ExecuteNonQuery();
}
con.Close();
}
Получить значение идентифицирующего столбца
здесь.
Реализую следующим образом:
но возникла проблема с выводом этого значения. и есть такое подозрение что значение будет null.
Собственно что нужно описанно
Реализую следующим образом:
Код:
но возникла проблема с выводом этого значения. и есть такое подозрение что значение будет null.
Код:
string S_I;
string conn_str = GetConnectionStrings();
using (SqlConnection con = new SqlConnection(conn_str))
{
con.Open();
string cmd_text = @"insert into [name] Values (@name); SELECT SCOPE_IDENTITY()";
using (SqlCommand cmd = new SqlCommand(cmd_text, con))
{
cmd.Parameters.Add("@name", System.Data.SqlDbType.VarChar).Value = "name";
S_I=cmd.ExecuteScalar().ToString();
}
con.Close();
}
string conn_str = GetConnectionStrings();
using (SqlConnection con = new SqlConnection(conn_str))
{
con.Open();
string cmd_text = @"insert into [name] Values (@name); SELECT SCOPE_IDENTITY()";
using (SqlCommand cmd = new SqlCommand(cmd_text, con))
{
cmd.Parameters.Add("@name", System.Data.SqlDbType.VarChar).Value = "name";
S_I=cmd.ExecuteScalar().ToString();
}
con.Close();
}
Вот примерно так:
Код:
SqlConnection connection = new SqlConnection(mMyConnectionString);
SqlCommand command = new SqlCommand("dbo.AddName", connection);
command.CommandType = CommandType.StoredProcedure;
command.Parameters.Add(new SqlParameter("@name", SqlDbType.NVarChar, 255));
command.Parameters.Add(new SqlParameter("@insertedId", SqlDBType.BigInt));
command.Parameters["@name"].Value = name;
command.Parameters["@insertedId"].Direction = ParameterDirection.Output;
connection.Open();
command.ExecuteNonQuery();
long insertedId = command.Parameters["@insertedId"];
connection.Close();
SqlCommand command = new SqlCommand("dbo.AddName", connection);
command.CommandType = CommandType.StoredProcedure;
command.Parameters.Add(new SqlParameter("@name", SqlDbType.NVarChar, 255));
command.Parameters.Add(new SqlParameter("@insertedId", SqlDBType.BigInt));
command.Parameters["@name"].Value = name;
command.Parameters["@insertedId"].Direction = ParameterDirection.Output;
connection.Open();
command.ExecuteNonQuery();
long insertedId = command.Parameters["@insertedId"];
connection.Close();
Код процедуры:
Код:
create procedure dbo.AddName(
@name nvarchar(255)
@insertedId bigint = null output
)
as
begin
insert into dbo.[name] Values (@name);
set @insertedId = SCOPE_IDENTITY();
end
@name nvarchar(255)
@insertedId bigint = null output
)
as
begin
insert into dbo.[name] Values (@name);
set @insertedId = SCOPE_IDENTITY();
end