Visual studio 如何在visual studio中执行存储过程并从其临时表中进行选择?
我有一个spˋUpdate_driverˋPositionˋ和一个参数ˋtestblˋvarchar type,在sp中我选择其他表的数据到ˋtestblˋ中。我知道如何在VisualStudio中运行sp,但我不知道如何从ˋtestbl中选择数据ˋ获取testbl中的日期到sqldatareader 这是我在SQL Server中运行sp的方式Visual studio 如何在visual studio中执行存储过程并从其临时表中进行选择?,visual-studio,sql-server-2008-r2,Visual Studio,Sql Server 2008 R2,我有一个spˋUpdate_driverˋPositionˋ和一个参数ˋtestblˋvarchar type,在sp中我选择其他表的数据到ˋtestblˋ中。我知道如何在VisualStudio中运行sp,但我不知道如何从ˋtestbl中选择数据ˋ获取testbl中的日期到sqldatareader 这是我在SQL Server中运行sp的方式 Exec dbo.Update_Driver_Position '##Temp' Select * From ##Temp 这是我在Visual
Exec dbo.Update_Driver_Position '##Temp'
Select * From ##Temp
这是我在VisualStudio中的代码
using (SqlCommand cmd = new SqlCommand())
{
string text = "Update_driver_Position";
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = text;
SqlParameter retval = cmd.Parameters.Add("@Temptbl", SqlDbType.VarChar);
retval.Direction = ParameterDirection.Output;
cmd.Connection = this.GetConnection();
cmd.Connection.Open();
cmd.ExecuteNonQuery();
SqlDataReader reader = (cmd.Parameters["@Temptbl"]);
while (reader.Read())
{
//...
}
}
你是说如何从返回的读卡器中获取列数据到say av中 intx=intreader[MyField] 或者如何将数据存储到读卡器中?你需要打电话给ExecuteReader。 SqlDataReader r=cmdSproc.ExecuteReader 以下是一些示例代码:
using (SqlConnection con = new SqlConnection(connString))
{
//use sproc
SqlCommand cmd = new SqlCommand("selMyProcedure", con);
cmd.CommandType = CommandType.StoredProcedure;
//some paramters
cmd.Parameters.Add("@VendorName", SqlDbType.VarChar).Value = vn;
cmd.Parameters.Add("@ProductTypeName", SqlDbType.VarChar).Value = pt;
cmd.Parameters.Add("@ProductName", SqlDbType.VarChar).Value = p;
con.Open();
//you need to add below
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
int x = (int)reader["MyCol"];
}
//...more code
换句话说,您需要将应用于ExecuteReader的命令对象分配给读卡器。
一旦你在读卡器中有了数据,你就可以通过读卡器[MyColumn]来读取它。问题解决了!
这是我的密码:
using (SqlCommand cmd = new SqlCommand())
{
string text = string.Format("Exec dbo.Update_Driver_Position '##Temp' Select * From ##Temp");
cmd.CommandType = CommandType.Text;
cmd.CommandText = text;
cmd.Connection = this.GetConnection();
cmd.Connection.Open();
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
//...
}
我知道,如何使用cmd.Parameters将'tentbl'传递给存储过程cause。Add@VendorName,SqlDbType.VarChar我们添加的参数不是临时表。