我有一个DataSet 封装代码,之前少用 没有调用,
/// <summary>
/// 执行传入的存储过程名和参数结构体,返回DataSet对象
/// </summary>
/// <param name="strProName"></param>
/// <param name="stProParameters"></param>
/// <returns></returns>
public static DataSet Re_DataSet(string strProName, ProceducreParameter[] stProParameters)
{
using (SqlConnection Conn = new SqlConnection(SqlConn.ConnSting))
{
ConnExsql.Open(Conn);
DataSet ds = null;
using (SqlCommand Cmd = new SqlCommand(strProName, Conn))
{
Cmd.CommandType = CommandType.StoredProcedure;
for (int i = 0; i < stProParameters.Length; ++i)//注意,不是“i++”!
{
ProceducreParameter stProPar = stProParameters[i];
SqlParameter sp = new SqlParameter(stProPar.TabStrName, stProPar.TabStrType, stProPar.TabStrSize);
sp.Direction = stProPar.TabStrDirection;
sp.Value = stProPar.TabStrValue;
Cmd.Parameters.Add(sp);
}
using (SqlDataAdapter da = new SqlDataAdapter(Cmd))
{
ds = new DataSet();
da.Fill(ds);
//da.Dispose();
}
Cmd.Parameters.Clear();
//Cmd.Dispose();
}
ConnExsql.Close(Conn);
return ds;
}
}调用读取数据库的语句怎么写??如SqlDataReader:
/// <summary>
/// 执行传入的存储过程名,返回SqlDataReader对象
/// </summary>
/// <param name="strProName">存储过程名称</param>
/// <param name="stProParameters">存储过程变量</param>
/// <param name="DR">返回的SqlDataReader对象</param>
/// <returns></returns>
public static SqlDataReader Re_DataReader(string strProName, ProceducreParameter[] stProParameters)
{
using (SqlConnection Conn = new SqlConnection(SqlConn.ConnSting))
{
ConnExsql.Open(Conn);
SqlDataReader Dr = null;
using (SqlCommand Cmd = new SqlCommand(strProName, Conn))//SqlCommand Cmd;
{
Cmd.CommandType = CommandType.StoredProcedure;
for (int i = 0; i < stProParameters.Length; ++i)//注意不是“i++”!
{
ProceducreParameter stProPar = stProParameters[i];
SqlParameter sp = new SqlParameter(stProPar.TabStrName, stProPar.TabStrType, stProPar.TabStrSize);
sp.Direction = stProPar.TabStrDirection;
sp.Value = stProPar.TabStrValue;
Cmd.Parameters.Add(sp);
}
Dr = Cmd.ExecuteReader(CommandBehavior.CloseConnection);
Cmd.Parameters.Clear();
//Cmd.Dispose();
}
ConnExsql.Close(Conn);
return Dr;
}
}读取数据的时候这样调用:
SqlDataReader sdr = Proce.Re_DataReader("储存过程", Proc);
while (dr.Read())
{
html.Append("" + dr["AdImg"].ToString() + "");
}
dr.Close();
dr.Dispose();如果用DataSet 请问该怎么改 像上面这样可以直接读取数据呢?谢谢datasetC#
/// <summary>
/// 执行传入的存储过程名和参数结构体,返回DataSet对象
/// </summary>
/// <param name="strProName"></param>
/// <param name="stProParameters"></param>
/// <returns></returns>
public static DataSet Re_DataSet(string strProName, ProceducreParameter[] stProParameters)
{
using (SqlConnection Conn = new SqlConnection(SqlConn.ConnSting))
{
ConnExsql.Open(Conn);
DataSet ds = null;
using (SqlCommand Cmd = new SqlCommand(strProName, Conn))
{
Cmd.CommandType = CommandType.StoredProcedure;
for (int i = 0; i < stProParameters.Length; ++i)//注意,不是“i++”!
{
ProceducreParameter stProPar = stProParameters[i];
SqlParameter sp = new SqlParameter(stProPar.TabStrName, stProPar.TabStrType, stProPar.TabStrSize);
sp.Direction = stProPar.TabStrDirection;
sp.Value = stProPar.TabStrValue;
Cmd.Parameters.Add(sp);
}
using (SqlDataAdapter da = new SqlDataAdapter(Cmd))
{
ds = new DataSet();
da.Fill(ds);
//da.Dispose();
}
Cmd.Parameters.Clear();
//Cmd.Dispose();
}
ConnExsql.Close(Conn);
return ds;
}
}调用读取数据库的语句怎么写??如SqlDataReader:
/// <summary>
/// 执行传入的存储过程名,返回SqlDataReader对象
/// </summary>
/// <param name="strProName">存储过程名称</param>
/// <param name="stProParameters">存储过程变量</param>
/// <param name="DR">返回的SqlDataReader对象</param>
/// <returns></returns>
public static SqlDataReader Re_DataReader(string strProName, ProceducreParameter[] stProParameters)
{
using (SqlConnection Conn = new SqlConnection(SqlConn.ConnSting))
{
ConnExsql.Open(Conn);
SqlDataReader Dr = null;
using (SqlCommand Cmd = new SqlCommand(strProName, Conn))//SqlCommand Cmd;
{
Cmd.CommandType = CommandType.StoredProcedure;
for (int i = 0; i < stProParameters.Length; ++i)//注意不是“i++”!
{
ProceducreParameter stProPar = stProParameters[i];
SqlParameter sp = new SqlParameter(stProPar.TabStrName, stProPar.TabStrType, stProPar.TabStrSize);
sp.Direction = stProPar.TabStrDirection;
sp.Value = stProPar.TabStrValue;
Cmd.Parameters.Add(sp);
}
Dr = Cmd.ExecuteReader(CommandBehavior.CloseConnection);
Cmd.Parameters.Clear();
//Cmd.Dispose();
}
ConnExsql.Close(Conn);
return Dr;
}
}读取数据的时候这样调用:
SqlDataReader sdr = Proce.Re_DataReader("储存过程", Proc);
while (dr.Read())
{
html.Append("" + dr["AdImg"].ToString() + "");
}
dr.Close();
dr.Dispose();如果用DataSet 请问该怎么改 像上面这样可以直接读取数据呢?谢谢datasetC#
DataSet ds= Proce.Re_DataSet("储存过程名称", 参数);
DataTable table = ds.Tables[0];
foreach DataTable 的Rows属性
DataTable table = ds.Tables[0];
foreach DataTable 的Rows属性
DataTable Dt = ds.Tables[0];
for (int i = 0; i < Dt.Rows.Count; i++)
{
DataRow Row = Dt.Rows[i];
html.Append("<li>" + sdr["ExpressNum"].ToString() + "</li>\n");
}
Dt.Rows.Clear();好了,谢谢大家
DataTable Dt = ds.Tables[0];
for (int i = 0; i < Dt.Rows.Count; i++)
{
DataRow Row = Dt.Rows[i];
html.Append("<li>" + Row["ExpressNum"].ToString() + "</li>\n");
}
Dt.Rows.Clear();好了,谢谢大家