【发布时间】:2018-08-27 08:57:10
【问题描述】:
首先,我首先执行使用数据创建#temp 表的过程,然后在我想要#temp 某个列与其他表列使用连接之后。 第一个查询在第二个查询错误发生后执行(#temp 对象无效)
if (con.State == ConnectionState.Closed)
{ con.Open(); }
IsInTransaction = true;
trans = con.BeginTransaction();
da = new SqlDataAdapter("Execute SP_Statement_Temp", con);
da.SelectCommand.Transaction = trans;
DataTable DatTemp = new DataTable();
da.Fill(DatTemp);
SelectString = "Select Distinct #temp.IdentityID, TblMasterTypeOfIdentity.TypeOfIdentity,TblIdentity.IdentityName, '' As 'Opening Balance' , '' As 'Closing Balance' from #temp inner join TblIdentity on TblIdentity.IdentityID=#temp.IdentityID inner join TblMasterTypeOfIdentity on TblMasterTypeOfIdentity.TypeOfIdentityID=#temp.TypeOfIdentityID";
CmdString = SelectString + " " + WhereString + " " + OrderBy;
da = new SqlDataAdapter(CmdString, con);
da.SelectCommand.Transaction = trans;
DataTable datDetail = new DataTable();
da.Fill(datDetail);
trans.Commit();
IsInTransaction = false;
con.Close();
【问题讨论】:
-
有一个很好的答案,但是问问自己为什么需要在存储过程中创建一个临时表以便在另一个语句中进行选择。
标签: c# asp.net sql-server ado.net