如何将数据填充到datatable作为数据源,看代码

laoyingisme 2008-06-06 03:59:51
private void FillDataTable()
{

DataTable _dtProducts = new DataTable();
DataRow dr;

_dtProducts.Columns.Add(new DataColumn("ProductID", typeof(int)));
_dtProducts.Columns.Add(new DataColumn("ProductName", typeof(string)));
_dtProducts.Columns.Add(new DataColumn("UnitPrice", typeof(decimal)));

string conn = "server=(local);database=northwind;user id=sa;password=password;Trusted_Connection=false";
SqlConnection cn = new SqlConnection(conn);
string str = "select * from Products";
SqlCommand cmd = new SqlCommand(str, cn);
cn.Open();
SqlDataReader DR = cmd.ExecuteReader();

if (DR.Read())
{
dr = _dtProducts.NewRow();
dr[0] = DR["ProductID"];
dr[1] = DR["ProductName"];
dr[5] = DR["UnitPrice"]; //但在northwind数据库里的Products的第6列 (sql2000)
_dtProducts.Rows.Add(dr);
}

DR.close();
cn.Close();
}
编辑时的提示:无法找到列 5,但在north数据库里的Products的第6列有的呀
不知道错在那里,以前用dataset比较多,熟悉datatable的请不吝赐教!!
...全文
285 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
zpcoder 2008-06-11
  • 打赏
  • 举报
回复

哎~~~~~~~~~~~`
hksallen 2008-06-10
  • 打赏
  • 举报
回复
dr = _dtProducts.NewRow();
-----------〉
_dtProducts只有3列啊,怎么会有第五列,所以应该是dr[2]=DR["UnitPrice"];



dr[5] = DR["UnitPrice"]; //但在northwind数据库里的Products的第6列 (sql2000)

--------〉DR["UnitPrice"]这个已经根据字段取值了,不用管是第几列
zyug 2008-06-10
  • 打赏
  • 举报
回复
绑定控件可以直接用DataReader绑定的。楼主
laoyingisme 2008-06-10
  • 打赏
  • 举报
回复
确实如8楼说的,问题已经解决
在这里要特别感谢3楼,你还是蛮有才的,呵呵
laoyingisme 2008-06-10
  • 打赏
  • 举报
回复
我试一下
[Quote=引用 8 楼 hksallen 的回复:]
dr = _dtProducts.NewRow();
-----------〉
_dtProducts只有3列啊,怎么会有第五列,所以应该是dr[2]=DR["UnitPrice"];


dr[5] = DR["UnitPrice"]; //但在northwind数据库里的Products的第6列 (sql2000)

--------〉DR["UnitPrice"]这个已经根据字段取值了,不用管是第几列
[/Quote]
laoyingisme 2008-06-06
  • 打赏
  • 举报
回复
to :xiaogang107 ,dr[5]//我要的是表里的第6列数据,so...
大自然D使者 2008-06-06
  • 打赏
  • 举报
回复
private void FillDataTable()
{

DataTable _dtProducts = new DataTable();
DataRow dr;

_dtProducts.Columns.Add(new DataColumn("ProductID", typeof(int)));
_dtProducts.Columns.Add(new DataColumn("ProductName", typeof(string)));
_dtProducts.Columns.Add(new DataColumn("UnitPrice", typeof(decimal)));

string conn = "server=(local);database=northwind;user id=sa;password=password;Trusted_Connection=false";
SqlConnection cn = new SqlConnection(conn);
string str = "select * from Products";
SqlCommand cmd = new SqlCommand(str, cn);
cn.Open();
SqlDataReader DR = cmd.ExecuteReader();

if (DR.Read())
{
dr = _dtProducts.NewRow();
dr[0] = DR["ProductID"];
dr[1] = DR["ProductName"];
//dr[5] = DR["UnitPrice"]; //但在northwind数据库里的Products的第6列 (sql2000)
dr[2] = DR["UnitPrice"];
_dtProducts.Rows.Add(dr);
}

DR.close();
cn.Close();
}
应该这样,楼主可能是大意了。
laoyingisme 2008-06-06
  • 打赏
  • 举报
回复
TO:ZPCODER,but 3Q
还是不行,提示,"已有打开的与此命令相关联的 DataReader,必须首先将它关闭。"
zsj33333 2008-06-06
  • 打赏
  • 举报
回复
private DataTable FillDataTable()
{

DataTable _dtProducts = new DataTable();
DataRow dr;

_dtProducts.Columns.Add(new DataColumn("ProductID", typeof(int)));
_dtProducts.Columns.Add(new DataColumn("ProductName", typeof(string)));
_dtProducts.Columns.Add(new DataColumn("UnitPrice", typeof(decimal)));

string conn = "server=(local);database=northwind;user id=sa;password=password;Trusted_Connection=false";
SqlConnection cn = new SqlConnection(conn);
string str = "select * from Products";
SqlCommand cmd = new SqlCommand(str, cn);
cn.Open();
SqlDataAdapter da = new SqlDataAdapter(cmd);
///DataTable dt=new DataTable("name")
da.Fill( _dtProducts );
return _dtProducts
}
zpcoder 2008-06-06
  • 打赏
  • 举报
回复
    public static DataTable FillDataTable()
{
string conn = "server=(local);database=northwind;user id=sa;password=password;Trusted_Connection=false";
string str = "select * from Products";

using (SqlConnection conn = new SqlConnection(conn))
{
SqlDataAdapter da = new SqlDataAdapter(str, conn);
da.SelectCommand.CommandType = CommandType.Text;
da.SelectCommand.ExecuteReader();
DataTable tbl = new DataTable();
da.Fill(tbl);
return tbl;
}
}


这样填允 DataTable
lunber 2008-06-06
  • 打赏
  • 举报
回复
应该是_dtProducts只有三列吧

62,254

社区成员

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

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

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

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