执行sql语句,不是反回的datatable和dataset吗,

chengmingwei11 2012-09-24 02:24:38
执行sql语句,不是反回的datatable和dataset吗?
为什么公司的程序,返回的是list,难道它在里面编写了datatable转换为list的方法了吗?本人菜鸟,勿喷
...全文
328 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
暖枫无敌 2012-09-24
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 的回复:]
引用 12 楼 的回复:
DataTable可以转换成实体类啊

举个简单的例子:


C# code


public class Person
{
public string Name {get;set;}
public int Age {get;set;}
}



执行SQL语句,返回一个DataSet后,遍历添加到集合中

C# code


……
[/Quote]
EF + LINT to Class 就是这样做的
ruanwei1987 2012-09-24
  • 打赏
  • 举报
回复
DataSet
SqlDataReader
种草德鲁伊 2012-09-24
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 的回复:]

其实,根据设计文档接口,连这也是多余的,
直接在需要呈现数据和提交更新的时候根据设计文档接口自动匹配就可以了

[/Quote]

自动匹配是没问题,但是你能匹配任何界面任何业务逻辑?你一直强调任何代码中都不会出现字段,那所谓的业务逻辑代码到底做了什么?
我觉得你的程序只是把sql management studio的打开表功能再实现了一遍。
qldsrx 2012-09-24
  • 打赏
  • 举报
回复
这个应该就是你要的:http://topic.csdn.net/u/20120412/10/42835527-3690-4775-a56e-b98426ada728.html

另外给你扫盲下,执行SQL是返回IDataReader,而不是DataTable,通过DataReader的读取才产生DataTable的
挨踢界小学生 2012-09-24
  • 打赏
  • 举报
回复
应该就是写了个转换的方法将dataset的每一条记录都转换为一个model层对象吧,你也可以自己写
缪军 2012-09-24
  • 打赏
  • 举报
回复
微软提供类型化数据集的开发手段,也就是所谓强类型的数据集,
而不是让程序员手工编写代码去转换
http://msdn.microsoft.com/zh-cn/library/wha85tzb(v=vs.100).aspx

其实,根据设计文档接口,连这也是多余的,
直接在需要呈现数据和提交更新的时候根据设计文档接口自动匹配就可以了
缪军 2012-09-24
  • 打赏
  • 举报
回复
[Quote=引用楼主 的回复:]
执行sql语句,不是反回的datatable和dataset吗?
[/Quote]

[Quote=引用 10 楼 的回复:]
dbcommand有哪个方法执行以后返回datatable?
[/Quote]

楼主说的用Sql适配器或者OleDB适配器执行对应的SqlCommand或者OleDbCommand,隐式返回行集
chengmingwei11 2012-09-24
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 的回复:]
DataTable可以转换成实体类啊

举个简单的例子:


C# code


public class Person
{
public string Name {get;set;}
public int Age {get;set;}
}



执行SQL语句,返回一个DataSet后,遍历添加到集合中

C# code



publ……
[/Quote]大哥,这个我以前也写过,但是每写一个类,就写一次转换,我是想能不能直接弄个实体类型,把实体传过去,执行sql语句后,调用这个方法自动转换,直接返回list
暖枫无敌 2012-09-24
  • 打赏
  • 举报
回复
DataTable可以转换成实体类啊

举个简单的例子:


public class Person
{
public string Name {get;set;}
public int Age {get;set;}
}


执行SQL语句,返回一个DataSet后,遍历添加到集合中


public List<Person> getPersonEntities(DataSet personDS)
{
List<Person> list = new List<Person>();
if(personDS!=null&&personDS.Tables[0].Rows.Count>0)
{
foreach(DataRowView drv in personDS.Tables[0].DefaultView)
{
Person p = new Person();
p.Name = drv["Name"].ToString();
p.Age = int.Parse(drv["Age"].ToString());
list.Add(p);
}
}
return list;
}
chengmingwei11 2012-09-24
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 的回复:]
引用 9 楼 的回复:

引用 7 楼 的回复:
从来没见过执行SQL命令会返回datatable
当你执行查询语句的时候,最后结果不是返回的datatable


dbcommand有哪个方法执行以后返回datatable?
[/Quote]大牛,我懂你的意思,我说的是执行我下面这个方法
public static DataTable GetDataSet(string sql)
{

DataSet ds = new DataSet();
SqlCommand cmd = new SqlCommand(sql, Connection);
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(ds);
return ds.Tables[0];
}如果返回list的话,是在这里面datatable转换为list的吗
种草德鲁伊 2012-09-24
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]

引用 7 楼 的回复:
从来没见过执行SQL命令会返回datatable
当你执行查询语句的时候,最后结果不是返回的datatable
[/Quote]

dbcommand有哪个方法执行以后返回datatable?
chengmingwei11 2012-09-24
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]
从来没见过执行SQL命令会返回datatable
[/Quote]当你执行查询语句的时候,最后结果不是返回的datatable
Randolfz 2012-09-24
  • 打赏
  • 举报
回复
想返回什么类型的是编写那块代码人的事,写什么类型那就返回什么类型,你不用你可以再转啊
种草德鲁伊 2012-09-24
  • 打赏
  • 举报
回复
从来没见过执行SQL命令会返回datatable
chengmingwei11 2012-09-24
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
一步步查看源代码(按F12),看看他怎么转的吧。
[/Quote]我也转了,最后转到 public virtual IDataReader ExecuteReader(DbCommand command);这个了,不懂这个的意思
我就是大神 2012-09-24
  • 打赏
  • 举报
回复
人家方法封装好了,比如DataTableToList(datatable dt){.......;return list;}
nyxuem 2012-09-24
  • 打赏
  • 举报
回复
一步步查看源代码(按F12),看看他怎么转的吧。
熙风 2012-09-24
  • 打赏
  • 举报
回复
既然你知道了返回的是List就就应该知道它是在哪里转的,怎么转的
kobelong 2012-09-24
  • 打赏
  • 举报
回复
估计你们公司又把SQL的查询方法封装了一套.
luhuiming741cs 2012-09-24
  • 打赏
  • 举报
回复
这个都是根据需要来设定,不一定非要返回DataTable或者DataTable

110,825

社区成员

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

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

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