朋友们问个问题啊关于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;
}