我有一个问题,即绑定来自2个表的数据主义者......我使用了这段代码 DataSet ds = DataManager.ExecuteDataSet(“select_unionmembers_full_info”);
ds.Tables[0].TableName = "unionmembers";
ds.Tables[1].TableName = "user_sign_up";
ds.Relations.Add(new DataRelation("stunion", ds.Tables["unionmembers"].Columns["stuid"],
ds.Tables["user_sign_up"].Columns["stu_id"], false));
alreadyexistdl.DataSource = ds.Tables[0];
alreadyexistdl.DataBind();
}
这是我使用的连接查询(select_unionmembers_full_info)
选择*,用户名,来自unionmembers的id,user_sign_up,其中stuid = stu_id 这个错误出现在我身上! 找不到表1。
第14行: 第15行:ds.Tables [0] .TableName =“unionmembers”; 第16行: ds.Tables [1] .TableName =“user_sign_up”; 第17行: 第18行:ds.Relations.Add(新的DataRelation(“stunion”,ds.Tables [“unionmembers”]。列[“stuid”]这里是Stack Trace:
[IndexOutOfRangeException: Cannot find table 1.]
System.Data.DataTableCollection.get_Item(Int32 index)+79 stunion_unionadmin.Page_Load(Object sender,EventArgs e)在g:\ new gradu project_2 \ Do7h Book 1 \ stunion \ unionadmin.aspx.cs:16 System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender,EventArgs e)+51 System.Web.UI.Control.OnLoad(EventArgs e)+92 System.Web.UI.Control.LoadRecursive()+54 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint,Boolean includeStagesAfterAsyncPoint)+670
答案 0 :(得分:0)
为了获得两个表结果,您需要传递两个db命令。像这样举例如:
CommandString = "SELECT foo0 FROM foo0; SELECT foo1 FROM foo1;";
sda = new SqlDataAdapter(CommandString, conn);
ds = new DataSet();
sda.Fill(ds);
dt = ds.Tables[0];
dt1 = ds.Tables[1];