请教一个dataset绑定到grid的问题

dorryyang 2012-12-17 12:36:36
代码如下

private void BindGrid()
{
DataSet table = GetDataTable();
Grid1.DataSource = table;
Grid1.DataBind();
}
private DataSet GetDataTable()
{
DataSet source = new DataSet();
DataSet source1, source2;
DataSet source3 = new DataSet();
SqlParameter[] cs4 = new SqlParameter[4];
cs4[0] = new SqlParameter("@kuangchangId", kuangchangId);
cs4[1] = new SqlParameter("@sTime", sTime);
cs4[2] = new SqlParameter("@eTime", eTime);
cs4[3] = new SqlParameter("@customId", customId);
sqlstring = "select id,sellId,printId,productId,productPrice,totalMoney,carId,carMz,carJz,productFs,sellTime from KcSell where kuangchangId=@kuangchangId and checked=1 and customId=@customId and sellTime >= @sTime and sellTime <= @eTIme";
source1 = SqlHelper.ExecuteDataset(SqlHelper.connectionString, CommandType.Text, sqlstring, cs4);
source3.Tables.Add();
source3.Tables[0].Columns.Add("dTime", typeof(string));
source3.Tables[0].Columns.Add("dId", typeof(string));
source3.Tables[0].Columns.Add("dPid", typeof(string));
source3.Tables[0].Columns.Add("productName", typeof(string));
source3.Tables[0].Columns.Add("productPrice", typeof(string));
source3.Tables[0].Columns.Add("carName", typeof(string));
source3.Tables[0].Columns.Add("carMz", typeof(string));
source3.Tables[0].Columns.Add("carJz", typeof(string));
source3.Tables[0].Columns.Add("productFs", typeof(string));
source3.Tables[0].Columns.Add("totalMoney", typeof(string));
source3.Tables[0].Columns.Add("inMoney", typeof(string));
source3.Tables[0].Columns.Add("leaveMoney", typeof(string));
for (int i = 0; i < source1.Tables[0].Rows.Count; i++)
{
DataRow dr = source3.Tables[0].NewRow();
dr[0] = source1.Tables[0].Rows[i][10];
dr[1] = source1.Tables[0].Rows[i][1];
dr[2] = source1.Tables[0].Rows[i][2];
dr[3] = Kcc.getProductName(source1.Tables[0].Rows[i][3].ToString());
dr[4] = source1.Tables[0].Rows[i][4];
dr[5] = Kcc.getCarName(source1.Tables[0].Rows[i][6].ToString());
dr[6] = source1.Tables[0].Rows[i][7];
dr[7] = source1.Tables[0].Rows[i][8];
dr[8] = source1.Tables[0].Rows[i][9];
dr[9] = source1.Tables[0].Rows[i][5];
source3.Tables[0].Rows.Add(dr);
}
return source3;
}



Grid1.DataBind()这句出错
提示未将对象引用设置到对象的实例
...全文
248 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
快乐的小二兔 2012-12-18
  • 打赏
  • 举报
回复
我怎么感觉你没有做填充到dataset 中呢????
dorryyang 2012-12-18
  • 打赏
  • 举报
回复
呵呵,找到问题了,我的代码完全没有问题,是前台的grid代码的问题。
遁入空门 2012-12-17
  • 打赏
  • 举报
回复
Grid1.DataSource = table.Table[0];
蝶恋花雨 2012-12-17
  • 打赏
  • 举报
回复
DataTable dt;
		DataSet source1 = new DataSet();
		SqlParameter[] cs4 = new SqlParameter[4];
		cs4[0] = new SqlParameter("@kuangchangId", kuangchangId);
		cs4[1] = new SqlParameter("@sTime", sTime);
		cs4[2] = new SqlParameter("@eTime", eTime);
		cs4[3] = new SqlParameter("@customId", customId);
		sqlstring = "select id,sellId,printId,productId,productPrice,totalMoney,carId,carMz,carJz,productFs,sellTime from KcSell where kuangchangId=@kuangchangId and checked=1 and customId=@customId and sellTime >= @sTime and sellTime <= @eTIme";
		source1 = SqlHelper.ExecuteDataset(SqlHelper.connectionString, CommandType.Text, sqlstring, cs4);
		dt = new DataTable("Name");//这里是你的表名
		dt.Columns.Add("dTime", typeof(string));
		dt.Columns.Add("dId", typeof(string));
		dt.Columns.Add("dPid", typeof(string));
		dt.Columns.Add("productName", typeof(string));
		dt.Columns.Add("productPrice", typeof(string));
		dt.Columns.Add("carName", typeof(string));
		dt.Columns.Add("carMz", typeof(string));
		dt.Columns.Add("carJz", typeof(string));
		dt.Columns.Add("productFs", typeof(string));
		dt.Columns.Add("totalMoney", typeof(string));
		dt.Columns.Add("inMoney", typeof(string));
		dt.Columns.Add("leaveMoney", typeof(string));
		for (int i = 0; i < source1.Tables[0].Rows.Count; i++)
		{
			DataRow dr = dt.NewRow();
			dr[0] = source1.Tables[0].Rows[i][10];
			dr[1] = source1.Tables[0].Rows[i][1];
			dr[2] = source1.Tables[0].Rows[i][2];
			dr[3] = Kcc.getProductName(source1.Tables[0].Rows[i][3].ToString());
			dr[4] = source1.Tables[0].Rows[i][4];
			dr[5] = Kcc.getCarName(source1.Tables[0].Rows[i][6].ToString());
			dr[6] = source1.Tables[0].Rows[i][7];
			dr[7] = source1.Tables[0].Rows[i][8];
			dr[8] = source1.Tables[0].Rows[i][9];
			dr[9] = source1.Tables[0].Rows[i][5];
			dt.Rows.Add(dr);
		}
		return source3.Tables.Add(dt);
要不就改成这样。
蝶恋花雨 2012-12-17
  • 打赏
  • 举报
回复
source3.Tables.Add();放到 for (int i = 0; i < source1.Tables[0].Rows.Count; i++);上面 试试
dorryyang 2012-12-17
  • 打赏
  • 举报
回复
引用 5 楼 kongwei521 的回复:
C# code ? 1234567891011121314151617181920212223242526272829303132333435363738 DataTable dt; DataSet source1 = new DataSet(); SqlParameter[] cs4 = new SqlParameter[4]; ……
还是不行,同样的错误,如果我直接返回source1就可以正常显示的。我之所以把数据放入source3是要另外添加几个数据表。
dorryyang 2012-12-17
  • 打赏
  • 举报
回复
引用 2 楼 id270 的回复:
你给3绑数据,然后返回dataset1 这个想法。。。试试把1返回去 返回去之前先实例化,
请问具体如何操作呢,我检测过source3中是已经添加入行的,数据也正常。
H_Gragon 2012-12-17
  • 打赏
  • 举报
回复

DataSet table = GetDataTable(); 
改为:DataSet table = this.GetDataTable(); 试试!
快乐的小二兔 2012-12-17
  • 打赏
  • 举报
回复
你给3绑数据,然后返回dataset1 这个想法。。。试试把1返回去 返回去之前先实例化,
dorryyang 2012-12-17
  • 打赏
  • 举报
回复
继续请教一下大家,为什么我最后改成return source1 这个dataset就不用指定一定table呢?
lkf181 2012-12-17
  • 打赏
  • 举报
回复
应该用 DataTable绑定

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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