关于SqlDataAdapter.Fill()的用法一问

好运 2003-08-21 10:14:08
我的代码:
private void BindOrders()
{
try
{
DataTable Orders=new DataTable("Orders");

DataColumn ID = new DataColumn("ID");
DataColumn OrderID = new DataColumn("OrderID");
DataColumn StyleID = new DataColumn("StyleID");
DataColumn ColorID = new DataColumn("ColorID");
DataColumn SizeID = new DataColumn("SizeID");
DataColumn PlanQty = new DataColumn("PlanQty");
DataColumn ConsignDate = new DataColumn("ConsignDate");
Orders.Columns.Add(ID);
Orders.Columns.Add(OrderID);
Orders.Columns.Add(StyleID);
Orders.Columns.Add(ColorID);
Orders.Columns.Add(SizeID);
Orders.Columns.Add(PlanQty);
Orders.Columns.Add(ConsignDate);

myDataSet.Tables.Add(Orders);

Orders.RowChanged +=new DataRowChangeEventHandler( Row_Changed );
string strSql =@"exec D_Proc_GetOrders";
SqlDataAdapter sqlAdap=new SqlDataAdapter(strSql,frmPortal.m_DataManage.getConnection());
//sqlAdap.Fill(myDataSet);
sqlAdap.Fill(myDataSet,"Orders");
this.dgOrders.DataSource =myDataSet.Tables["Orders"];
this.dgOrders.SetDataBinding(myDataSet,"Orders");
}
catch(Exception ex)
{
throw ex;
}
},我的存储过程确实返回了数据(我直接邦订的情况下,因为要处理DataGrid 的RowChanged()事件,所以该用这种写法),但为什么sqlAdap.Fill(myDataSet,"Orders");出错了,异常如下: Message "Specified argument was out of the range of valid values.
Parameter name: rowIndex" string
用sqlAdap.Fill(myDataSet);结果没有数据,为什么?



我的目的:要在DataGrid的RowChanged的时候处理一些数据,所以改用邦订DataTable,处理DataTable_RowChanged()事件,又没有其他的方法?
...全文
1005 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
好运 2003-08-25
  • 打赏
  • 举报
回复
to cbspy(烂瓶子),真的难搞,存储过程最后select 出来的和我在VS中定义的表的字段想同,可就是有问题,公司没人能帮我,真急呀!
cbspy 2003-08-25
  • 打赏
  • 举报
回复
是什么参数超界了,你看看。
好运 2003-08-25
  • 打赏
  • 举报
回复
string strSql =@"exec D_Proc_GetOrders";
SqlDataAdapter sqlAdap=new SqlDataAdapter(strSql,frmPortal.m_DataManage.getConnection());
sqlAdap.Fill(Orders);
myDataSet.Tables.Add(Orders);
this.dgOrders.DataSource =Orders.DefaultView;
出错了,异常如下: Message "Specified argument was out of the range of valid values.
Parameter name: rowIndex" string
cbspy 2003-08-24
  • 打赏
  • 举报
回复
建议你先:sqlAdap.Fill(Orders),然后再myDataSet.Tables.Add(Orders);
好运 2003-08-22
  • 打赏
  • 举报
回复
CREATE PROCEDURE D_Proc_GetOrders AS
select identity(int,1,1) as ID,A.OrderID,B.StyleID,B.ColorID,B.SizeID,B.Qty,A.ConsignDate into #tmp_Order from P_Order A inner join P_OrderDetail B on A.RowID=B.RowID
select ColumnID as ID,OrderID as 订单号,StyleID as 款号, ColorID as 色号, SizeID as 尺码,Qty as 数量,ConsignDate as 计划交期 from #tmp_Order

drop table #tmp_Order
GO
qhgary 2003-08-21
  • 打赏
  • 举报
回复
把你的存储过程贴出来
dahuzizyd 2003-08-21
  • 打赏
  • 举报
回复
建议查看你的DataTable中表结构是否和你的存储过程所返回的相同

110,499

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧