我现在想在执行依据sql语句的时候将我执行完成后的那行结果返回回来
比如: 我insert 一条数据是这样的 1,2,3,4,5
我想我的insert执行完毕后返回一行1,2,3,4,5
cmd.CommandText = "insert into d_device ([device],[type],[online],[ip],[up_time]) values (" + "'" + ID + "'" + "," + "'" + ID[0] + "'" + ",1," + "'" + ip + "'" + ",getdate() )";
SqlDataReader sqlreader1 = cmd.ExecuteReader();
sqlreader1.Read();
我就是想在sqlread1中返回我刚插入的那一行!!!
比如: 我insert 一条数据是这样的 1,2,3,4,5
我想我的insert执行完毕后返回一行1,2,3,4,5
cmd.CommandText = "insert into d_device ([device],[type],[online],[ip],[up_time]) values (" + "'" + ID + "'" + "," + "'" + ID[0] + "'" + ",1," + "'" + ip + "'" + ",getdate() )";
SqlDataReader sqlreader1 = cmd.ExecuteReader();
sqlreader1.Read();
我就是想在sqlread1中返回我刚插入的那一行!!!
insert into d_device (......)
OUTPUT INSERTED.*
values (......)
{
StringBuilder strSql=new StringBuilder();
strSql.Append("insert into tg_shstate(");
strSql.Append("shname)"); strSql.Append(" values (");
strSql.Append("@shname)");
strSql.Append(";select @@IDENTITY");
Database db = DatabaseFactory.CreateDatabase();
DbCommand dbCommand = db.GetSqlStringCommand(strSql.ToString());
db.AddInParameter(dbCommand, "shname", DbType.String, model.shname);
int result;
object obj = db.ExecuteScalar(dbCommand);
if(!int.TryParse(obj.ToString(),out result))
{
return 0;
}
return result;
}这个resulr就是返回的自增长的主键id,你试试吧
comm.Connection = con;
comm.CommandText=sql;
con.Open();
SqlDataReader srd = comm.ExecuteReader();
DataTable dat = new DataTable();
dat.Load(srd);
{ string sql = "Insert into Users(Names,Address,Pid) values('" + name + "','" + address + "'," + pid + ");SELECT * from Users where PID="+pid+"";
comm.Connection = con;
comm.CommandText=sql;
con.Open();
SqlDataReader srd = comm.ExecuteReader();
DataTable dat = new DataTable();
//dat.Load(srd);
dat = dt.Tables[0].Clone();
DataRow dr = null;
while (srd.Read())
{
dr = dat.NewRow();
if (pid.CompareTo(srd["pid"])==0)
{
dr["pid"] = srd["pid"];
dr["Names"] = srd["Names"];
dr["Address"] = srd["Address"];
dat.Rows.Add(dr);
}
}
con.Close();
return dat;
}