首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

朋友们问个有关问题啊关于dataset的

2012-04-01 
朋友们问个问题啊关于dataset的publicDataSetproc_pageread(stringtablelist,stringtablename,stringselec

朋友们问个问题啊关于dataset的
public   DataSet   proc_pageread(string   tablelist,string   tablename,string   selectwhere,string   selectorderid,string   selectorder,int   pageno,int   pagesize)
        {
                        SqlConnection   conn   =   new   SqlConnection(connection());
                        SqlCommand   cmd   =   new   SqlCommand( "aspnetproc ",   conn);
                        conn.Close();
                        conn.Dispose();
                        cmd.CommandType   =   CommandType.StoredProcedure;
                        SqlParameter   para;
                        para   =   cmd.Parameters.Add( "@a_TableList ",   SqlDbType.VarChar,   200);     //搜索字段
                        cmd.Parameters[ "@a_TableList "].Value   =   tablelist;
                        para   =   cmd.Parameters.Add( "@a_TableName ",   SqlDbType.VarChar,   30);//表
                        cmd.Parameters[ "@a_TableName "].Value   =   tablename;
                        para   =   cmd.Parameters.Add( "@a_SelectWhere ",   SqlDbType.VarChar,   500);//搜索条件
                        cmd.Parameters[ "@a_SelectWhere "].Value   =   selectwhere;
                        para   =   cmd.Parameters.Add( "@a_SelectOrderId ",   SqlDbType.VarChar,   50);//主键名
                        cmd.Parameters[ "@a_SelectOrderId "].Value   =   selectorderid;
                        para   =   cmd.Parameters.Add( "@a_SelectOrder ",   SqlDbType.VarChar,   50);//排列
                        cmd.Parameters[ "@a_SelectOrder "].Value   =   selectorder;
                        para   =   cmd.Parameters.Add( "@a_intPageNo ",   SqlDbType.Int);//页号
                        cmd.Parameters[ "@a_intPageNo "].Value   =   pageno;
                        para   =   cmd.Parameters.Add( "@a_intPageSize ",   SqlDbType.Int);//页记录
                        cmd.Parameters[ "@a_intPageSize "].Value   =   pagesize;
                        para   =   cmd.Parameters.Add( "@RecordCount ",   SqlDbType.Int);//记录数


                        para.Direction   =   ParameterDirection.Output;
                        para   =   cmd.Parameters.Add( "@RowCount ",   SqlDbType.Int);//当前页的记录数
                        para.Direction   =   ParameterDirection.ReturnValue;
                        cmd.ExecuteReader(CommandBehavior.CloseConnection);
                        HttpContext.Current.Session[ "recordcount "]   =   cmd.Parameters[ "@RecordCount "].Value.ToString();     //获取记录数
                        return   cmd.ExecuteReader(CommandBehavior.CloseConnection);
          }


返回的是SqlDataReader类型     怎么把他做成返回dataset或datatable类型的啊



[解决办法]
DataGrid等控件可以绑定DataReader

如果你要从DataReader到DataTable
请看

http://www.aspxboy.com/private/showthread.asp?postid=950

可是你为何不选则 直接 填充一个DataTable呢?
[解决办法]
public DataSet proc_pageread(string tablelist,string tablename,string selectwhere,string selectorderid,string selectorder,int pageno,int pagesize)
你改下方法的返回值不就可以啦
如:public DataSet GetNianjiChengji(string chengjibiao) //获取年级专业成绩
{
SqlConnection myConnection = new SqlConnection(ConfigurationSettings.AppSettings[ "SQLCONNECTIONSTRING "]);
SqlDataAdapter da=new SqlDataAdapter ( "select * from "+chengjibiao+ " ",myConnection);
myConnection.Open ();
DataSet ds=new DataSet();
da.Fill (ds);
myConnection.Close ();
return(ds);
}

////////////////////////////////////////////////////////////////////////////
public SqlDataReader GetDepartment()
{
SqlConnection conn=new SqlConnection ();
conn.ConnectionString =ConfigurationSettings.AppSettings [ "SQLCONNECTIONSTRING "].ToString ();
SqlCommand cmd=new SqlCommand ();
cmd.CommandText = "select distinct department from specialty ";
cmd.Connection =conn;

conn.Open ();
SqlDataReader reader=cmd.ExecuteReader (CommandBehavior.CloseConnection );
return reader;
[解决办法]
SqlDataAdapter dapt = new SqlDataAdapter(cmd); DataSet ds = new DataSet(); dapt.Fill(ds, "Table1 "); conn.Dispose(); return ds;
[解决办法]
如何填充datable啊 谢谢
====>
看慕白兄 的 代码 就那样填
从DataReader到DataTable/DataSet的转换 可以看我发的那个链接内的现成函数。
[解决办法]
try
{
SqlDataReader sdr=sqlcmd.ExecuteReader();
int cols=sdr.FieldCount;
DataTable Mytab=new DataTable();
Mytab.BeginLoadData();
for(int i=0;i <cols;i++)
{
Mytab.Columns.Add(sdr.GetName(i),sdr.GetType());
}
string [] lvitem=new string[cols];
object [] values=new object[cols];
while(sdr.Read())
{
DataRow myRow=Mytab.NewRow();笨笨城的大宾 51cto技术博客


sdr.GetValues(values);
for(int i=0;i <values.Length;i++)
myRow[i]=values[i].ToString();

Mytab.Rows.Add(myRow);
}笨笨城的大宾 51cto技术博客
Mytab.EndLoadData();
this.dg.DataSource=Mytab;
sdr.Close();

}
catch(System.Data.SqlClient.SqlException ex)
{
MessageBox.Show(ex.Message);
}
笨笨城的大宾 51cto技术博客
出自 51CTO.COM博客
[解决办法]
//大致代码如下,未调试
public DataSet proc_pageread(string tablelist,string tablename,string selectwhere,string selectorderid,string selectorder,int pageno,int pagesize)
{
SqlConnection conn = new SqlConnection(connection());
SqlDataAdapter da = new SqlDataAdapter( "aspnetproc ", conn);
SqlCommand cmd = new SqlCommand( "aspnetproc ", conn);
da.SelectCommand = cmd;
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter para;
para = cmd.Parameters.Add( "@a_TableList ", SqlDbType.VarChar, 200); //搜索字段
cmd.Parameters[ "@a_TableList "].Value = tablelist;
para = cmd.Parameters.Add( "@a_TableName ", SqlDbType.VarChar, 30);//表
cmd.Parameters[ "@a_TableName "].Value = tablename;
para = cmd.Parameters.Add( "@a_SelectWhere ", SqlDbType.VarChar, 500);//搜索条件
cmd.Parameters[ "@a_SelectWhere "].Value = selectwhere;
para = cmd.Parameters.Add( "@a_SelectOrderId ", SqlDbType.VarChar, 50);//主键名
cmd.Parameters[ "@a_SelectOrderId "].Value = selectorderid;
para = cmd.Parameters.Add( "@a_SelectOrder ", SqlDbType.VarChar, 50);//排列
cmd.Parameters[ "@a_SelectOrder "].Value = selectorder;
para = cmd.Parameters.Add( "@a_intPageNo ", SqlDbType.Int);//页号
cmd.Parameters[ "@a_intPageNo "].Value = pageno;
para = cmd.Parameters.Add( "@a_intPageSize ", SqlDbType.Int);//页记录
cmd.Parameters[ "@a_intPageSize "].Value = pagesize;
para = cmd.Parameters.Add( "@RecordCount ", SqlDbType.Int);//记录数
para.Direction = ParameterDirection.Output;
para = cmd.Parameters.Add( "@RowCount ", SqlDbType.Int);//当前页的记录数
para.Direction = ParameterDirection.ReturnValue;
HttpContext.Current.Session[ "recordcount "] = cmd.Parameters[ "@RecordCount "].Value.ToString(); //获取记录数

DataSet ds = new DataSet();
conn.Open();
da.Fill(ds);
conn.Close();
return ds;
}

热点排行