12 个解决方案
#1
没人啊?
#2
将这个newid()付给一个变量,根据变量来查。
#3
使用存储过程,要不在访问一次
#4
select SCOPE_IDENTITY() as returnid
#5
楼主说的应该是Guid类型的关键字,这个字段不像自增类型的整数一样可以通过类似@@IDENTITY的方式来取,Guid没有类型的方式。要取这个值,只能在插入以后再取一次。
不过对于这个类型,一般来说,可以在在保存以前使用Guid.NewGuid()来先生成一个Guid类型的值,然后把这个值为做插入的参数传到数据库里,而很少使用默认的NewID在数据库端生成。
不过对于这个类型,一般来说,可以在在保存以前使用Guid.NewGuid()来先生成一个Guid类型的值,然后把这个值为做插入的参数传到数据库里,而很少使用默认的NewID在数据库端生成。
#6
存储过程
@@IDENTITY
@@IDENTITY
#7
sign
#8
存储过程这样写:
程序中:
这是个很完整的写法。楼主可以取其中所需部分。。。
create proc UP_brand_add
@A0 varchar(20),
@A1 varchar(15),
@id int output
as
insert into yyyManager values(@A0,@A1)
set @id= @@identity
return @id
程序中:
这是个很完整的写法。楼主可以取其中所需部分。。。
SqlParameter[] paras=new SqlParameter[3];
paras[0]=new SqlParameter("@A0",SqlDbType.VarChar,20);
paras[0].Value=你要赋的值;
paras[1]=new SqlParameter("@A1",SqlDbType.VarChar,15);
paras[1].Value=你要赋的值;
paras[2]=new SqlParameter("@id",SqlDbType.Int);
paras[2].Direction=ParameterDirection.Output;
int id=db.ExecoutID("UP_brand_add",paras);
public string ExecoutID(string cmdtext,SqlParameter[] paras)
{
if(conn.State!=ConnectionState.Open)
{
conn.Open();
}
SqlCommand cmd=new SqlCommand();
cmd.Connection=conn;
cmd.CommandText=cmdtext;
cmd.CommandType=CommandType.StoredProcedure;
string newid=string.Empty;
if(paras!=null && paras.Length>0)
{
for(int i=0 ; i<paras.Length;i++)
{
cmd.Parameters.Add(paras[i]);
}
}
try
{
cmd.ExecuteNonQuery();
if(paras!=null && paras.Length>0)
{
for(int i=0 ; i<paras.Length;i++)
{
if(paras[i].Direction==ParameterDirection.Output)
{
newid=Convert.ToString(paras[i].Value);
}
}
}
conn.Close();
return newid;
}
catch(System.Data.SqlClient.SqlException E)
{
conn.Close();
throw new Exception(E.Message);
}
}
#9
select id from inserted tablename
#10
select @@Identity SQL写这个函数就好了
#11
/// <summary>
/// 插入一條數據并返回它相應的值
/// </summary>
/// <param name="tempStrSQL">SQL语句</param>
/// <returns></returns>
public int UpdateData(string tempStrSQL)
{
DataTable dt = new DataTable();
int intNum;
this.myConnection = new SqlConnection(connectionString);
myConnection.Open();
SqlCommand tempSqlCommand = new SqlCommand(tempStrSQL, this.myConnection);
tempSqlCommand.ExecuteNonQuery();
SqlDataAdapter da = new SqlDataAdapter("select @@Identity", myConnection);
da.Fill(dt);
intNum = Convert.ToInt32(dt.Rows[0][0].ToString());
myConnection.Close();
return intNum; //
}
/// 插入一條數據并返回它相應的值
/// </summary>
/// <param name="tempStrSQL">SQL语句</param>
/// <returns></returns>
public int UpdateData(string tempStrSQL)
{
DataTable dt = new DataTable();
int intNum;
this.myConnection = new SqlConnection(connectionString);
myConnection.Open();
SqlCommand tempSqlCommand = new SqlCommand(tempStrSQL, this.myConnection);
tempSqlCommand.ExecuteNonQuery();
SqlDataAdapter da = new SqlDataAdapter("select @@Identity", myConnection);
da.Fill(dt);
intNum = Convert.ToInt32(dt.Rows[0][0].ToString());
myConnection.Close();
return intNum; //
}
#12
/// <summary>
/// 插入一條數據并返回它相應的值
/// </summary>
/// <param name="tempStrSQL">SQL语句</param>
/// <returns></returns>
public int UpdateData(string tempStrSQL)
{
DataTable dt = new DataTable();
int intNum;
this.myConnection = new SqlConnection(connectionString);
myConnection.Open();
SqlCommand tempSqlCommand = new SqlCommand(tempStrSQL, this.myConnection);
tempSqlCommand.ExecuteNonQuery();
SqlDataAdapter da = new SqlDataAdapter("select @@Identity", myConnection);
da.Fill(dt);
intNum = Convert.ToInt32(dt.Rows[0][0].ToString());
myConnection.Close();
return intNum; //
}
/// 插入一條數據并返回它相應的值
/// </summary>
/// <param name="tempStrSQL">SQL语句</param>
/// <returns></returns>
public int UpdateData(string tempStrSQL)
{
DataTable dt = new DataTable();
int intNum;
this.myConnection = new SqlConnection(connectionString);
myConnection.Open();
SqlCommand tempSqlCommand = new SqlCommand(tempStrSQL, this.myConnection);
tempSqlCommand.ExecuteNonQuery();
SqlDataAdapter da = new SqlDataAdapter("select @@Identity", myConnection);
da.Fill(dt);
intNum = Convert.ToInt32(dt.Rows[0][0].ToString());
myConnection.Close();
return intNum; //
}
#1
没人啊?
#2
将这个newid()付给一个变量,根据变量来查。
#3
使用存储过程,要不在访问一次
#4
select SCOPE_IDENTITY() as returnid
#5
楼主说的应该是Guid类型的关键字,这个字段不像自增类型的整数一样可以通过类似@@IDENTITY的方式来取,Guid没有类型的方式。要取这个值,只能在插入以后再取一次。
不过对于这个类型,一般来说,可以在在保存以前使用Guid.NewGuid()来先生成一个Guid类型的值,然后把这个值为做插入的参数传到数据库里,而很少使用默认的NewID在数据库端生成。
不过对于这个类型,一般来说,可以在在保存以前使用Guid.NewGuid()来先生成一个Guid类型的值,然后把这个值为做插入的参数传到数据库里,而很少使用默认的NewID在数据库端生成。
#6
存储过程
@@IDENTITY
@@IDENTITY
#7
sign
#8
存储过程这样写:
程序中:
这是个很完整的写法。楼主可以取其中所需部分。。。
create proc UP_brand_add
@A0 varchar(20),
@A1 varchar(15),
@id int output
as
insert into yyyManager values(@A0,@A1)
set @id= @@identity
return @id
程序中:
这是个很完整的写法。楼主可以取其中所需部分。。。
SqlParameter[] paras=new SqlParameter[3];
paras[0]=new SqlParameter("@A0",SqlDbType.VarChar,20);
paras[0].Value=你要赋的值;
paras[1]=new SqlParameter("@A1",SqlDbType.VarChar,15);
paras[1].Value=你要赋的值;
paras[2]=new SqlParameter("@id",SqlDbType.Int);
paras[2].Direction=ParameterDirection.Output;
int id=db.ExecoutID("UP_brand_add",paras);
public string ExecoutID(string cmdtext,SqlParameter[] paras)
{
if(conn.State!=ConnectionState.Open)
{
conn.Open();
}
SqlCommand cmd=new SqlCommand();
cmd.Connection=conn;
cmd.CommandText=cmdtext;
cmd.CommandType=CommandType.StoredProcedure;
string newid=string.Empty;
if(paras!=null && paras.Length>0)
{
for(int i=0 ; i<paras.Length;i++)
{
cmd.Parameters.Add(paras[i]);
}
}
try
{
cmd.ExecuteNonQuery();
if(paras!=null && paras.Length>0)
{
for(int i=0 ; i<paras.Length;i++)
{
if(paras[i].Direction==ParameterDirection.Output)
{
newid=Convert.ToString(paras[i].Value);
}
}
}
conn.Close();
return newid;
}
catch(System.Data.SqlClient.SqlException E)
{
conn.Close();
throw new Exception(E.Message);
}
}
#9
select id from inserted tablename
#10
select @@Identity SQL写这个函数就好了
#11
/// <summary>
/// 插入一條數據并返回它相應的值
/// </summary>
/// <param name="tempStrSQL">SQL语句</param>
/// <returns></returns>
public int UpdateData(string tempStrSQL)
{
DataTable dt = new DataTable();
int intNum;
this.myConnection = new SqlConnection(connectionString);
myConnection.Open();
SqlCommand tempSqlCommand = new SqlCommand(tempStrSQL, this.myConnection);
tempSqlCommand.ExecuteNonQuery();
SqlDataAdapter da = new SqlDataAdapter("select @@Identity", myConnection);
da.Fill(dt);
intNum = Convert.ToInt32(dt.Rows[0][0].ToString());
myConnection.Close();
return intNum; //
}
/// 插入一條數據并返回它相應的值
/// </summary>
/// <param name="tempStrSQL">SQL语句</param>
/// <returns></returns>
public int UpdateData(string tempStrSQL)
{
DataTable dt = new DataTable();
int intNum;
this.myConnection = new SqlConnection(connectionString);
myConnection.Open();
SqlCommand tempSqlCommand = new SqlCommand(tempStrSQL, this.myConnection);
tempSqlCommand.ExecuteNonQuery();
SqlDataAdapter da = new SqlDataAdapter("select @@Identity", myConnection);
da.Fill(dt);
intNum = Convert.ToInt32(dt.Rows[0][0].ToString());
myConnection.Close();
return intNum; //
}
#12
/// <summary>
/// 插入一條數據并返回它相應的值
/// </summary>
/// <param name="tempStrSQL">SQL语句</param>
/// <returns></returns>
public int UpdateData(string tempStrSQL)
{
DataTable dt = new DataTable();
int intNum;
this.myConnection = new SqlConnection(connectionString);
myConnection.Open();
SqlCommand tempSqlCommand = new SqlCommand(tempStrSQL, this.myConnection);
tempSqlCommand.ExecuteNonQuery();
SqlDataAdapter da = new SqlDataAdapter("select @@Identity", myConnection);
da.Fill(dt);
intNum = Convert.ToInt32(dt.Rows[0][0].ToString());
myConnection.Close();
return intNum; //
}
/// 插入一條數據并返回它相應的值
/// </summary>
/// <param name="tempStrSQL">SQL语句</param>
/// <returns></returns>
public int UpdateData(string tempStrSQL)
{
DataTable dt = new DataTable();
int intNum;
this.myConnection = new SqlConnection(connectionString);
myConnection.Open();
SqlCommand tempSqlCommand = new SqlCommand(tempStrSQL, this.myConnection);
tempSqlCommand.ExecuteNonQuery();
SqlDataAdapter da = new SqlDataAdapter("select @@Identity", myConnection);
da.Fill(dt);
intNum = Convert.ToInt32(dt.Rows[0][0].ToString());
myConnection.Close();
return intNum; //
}