###################DataSet访问数据库
protected DataSet ds;
protected SqlConnection conn;
protected System.Web.UI.WebControls.Label Label1;
protected SqlDataAdapter da;
private void Page_Load(object sender, System.EventArgs e)
{
string strconn="server=localhost;database=zyj;uid=sa;pwd=";
conn=new SqlConnection();
conn.ConnectionString=strconn;
string strcommand="select * from Student";
da=new SqlDataAdapter(strcommand,conn);
ds=new DataSet();
//da.Fill(ds,"Student");
ds.Tables.Add("Student");
da.Fill(ds);
DataTable tbl = ds.Tables["Student"];
DataRow row = tbl.Rows[0];
Label1.Text=row["StuNo"].ToString();
// 在此处放置用户代码以初始化页面
}
问题描述:ds.Tables.Add("Student"); da.Fill(ds);
如果上面两行代码换成da.Fill(ds,"Student");就是正确的,而用这两行代替就是错误的,Fill()函数填充可以用Fill(ds),但不知怎样和Student表联系起来
问题点数:20、回复次数:8Top
1 楼MJJ_Hua()回复于 2006-02-10 15:08:09 得分 0
就用da.Fill(ds,"Student");分二条写有什么意义呢。Top
2 楼zyj8170()回复于 2006-02-10 15:13:37 得分 20
我只是想解决另一种方法,我要讲课用的Top
3 楼gsk99(ZJUT)回复于 2006-02-10 15:29:02 得分 0
我按照你的方法怎么就没问题呢Top
4 楼zyj8170()回复于 2006-02-10 15:34:07 得分 0
你用的是Fill(ds)吗Top
5 楼hdt(倦怠)回复于 2006-02-10 15:39:35 得分 0
TableMappingsTop
6 楼gsk99(ZJUT)回复于 2006-02-10 15:48:20 得分 0
ds=new DataSet();
//da.Fill(ds,"Student");
ds.Tables.Add("Student");
da.Fill(ds.Tables["Student"]);
DataTable tbl = ds.Tables["Student"];
DataRow row = tbl.Rows[0];
Label1.Text=row["StuNo"].ToString();
da.Fill(ds.Tables["Student"]);
改成这样Top
7 楼gsk99(ZJUT)回复于 2006-02-10 15:54:27 得分 0
或者改成:
ds=new DataSet();
//da.Fill(ds,"Student");
ds.Tables.Add("Student");
da.Fill(ds);
DataTable tbl = ds.Tables[1];
DataRow row = tbl.Rows[0];
Label1.Text=row["StuNo"].ToString();
因为你前面已经添了一个表了da.Fill(ds,"Student");
而这里da.Fill(ds);你没有指明添加到“Student”表中,所以表的序号是1而不是0Top
8 楼zyj8170()回复于 2006-02-10 16:20:09 得分 0
应该把ds.Tables.Add("Student");去掉
把DataTable tbl = ds.Tables["Student"];该成DataTable tbl = ds.Tables[0];
问题解决Top




