怎么用强类型的DataSet??
从XML中读取形成DataSet,但一些SQL在DataTable的Select不能用!!
在网上查了一下可以用强类型的DataSet,但多数例子都是在界面上用Shift+Ctrl+B直接转换,但我是在数据函数中使用,应该怎么定义强类型的DataSet???
谢谢!
从XML中读取形成DataSet,但一些SQL在DataTable的Select不能用!!
在网上查了一下可以用强类型的DataSet,但多数例子都是在界面上用Shift+Ctrl+B直接转换,但我是在数据函数中使用,应该怎么定义强类型的DataSet???
谢谢!
解决方案 »
- 为什么 vs2010 用membership 登录后 会出现下面的信息:
- 如何打开网页自动播放音乐?
- 动态加载数据问题, 应该看哪些方面的资料?
- 求一正则
- Type能否序列化?
- 询问:(Winform)关于在vs2005下使用WebBrowser控件加载flash的问题
- 请教:如何在datagridview连续两次回车就跳转到另一个按钮?
- System.ArgumentException: 已添加项。字典中的键:“winbootdir” 所添加的键:“winbootdir”
- 如何在win2000的到xp的界面_高分有送
- 不用浏览器如何设置COOKIE?
- 如何用winform打开cad图
- 请问,C#中怎样读取数据库中表的列名
2.访问数据集
(一)最简单的是通过ObjectDataSource控件;
(二)和传统的一样,实例化数据集中的一个类,(适配器类)我用下来,绝大部分正常的Select语句都没问题!!
未能找到文件“D:\Visual Studio 8\VC\XSDSchemaFileName.xsd
private DataTable SingleDataTable(string sqlstr)
{
DataTable datatable = new DataTable();
DataSet ds = new DataSet();
string tableName = GetTableName(sqlstr);
string[] columns = GetColumns(sqlstr);
string where = GetWhere(sqlstr);
string order = GetOrder(sqlstr);
StreamReader sw = new StreamReader(mainConnectString + "/" + tableName + ".xml", Encoding.Default);
ds.ReadXml(sw, XmlReadMode.ReadSchema);
sw.Close();
sw.Dispose();//取数据
......
return datatable;
}
怎么用强类型的DataSet
谢谢!!!!!
美国人Scott Mitchell 的ASP_NET 2_0数据教程
google一下,有教程,有代码,三层开讲,强类型的DataSet!
xsd.exe /d /l:CS XSDSchemaFileName.xsd /n:XSDSchema.Namespace
用强类型的dataset好象没有看到你这种用法!!
事实上强类型的dataset除了更加对象化以外,减少代码量也是个目的,
你这样和传统的代码量没有什么改变!!看看老外写的,中国人在编程方面只能看老外的!!
看本国人编的要么是照抄老外的,要么就是胡编!!
我的思路是把数据从数据库中导出形成XML,然后用DataSet从XML读取数据,在内存中形成数据库,这样可以在数据库发生问题是程序能正常运行!
呵呵,结果发现不是那么简单,很多SQL在DataSet中没法执行,比如:convert(char(6),活动日期,112)='200902'、以及多表联合查询等等都比较麻烦,虽然也可以通过别的方法实现,但这样就需要修改原来的SQL,但是SQL的情况太多了,实在是太麻烦了。
大家帮忙想想有啥好方法??
谢谢!!
我试过在强类型的DataSet中是可以的,
看了一下XML没什么异样!!
表达式包含未定义的函数调用 char()
给你DataSet自动生成的部分XML代码,想说明是可以的!!
........
<Mapping SourceColumn="id" DataSetColumn="id" />
<Mapping SourceColumn="name" DataSetColumn="name" />
<Mapping SourceColumn="time" DataSetColumn="time" />
</Mappings>
<Sources>
<DbSource ConnectionRef="DbaseConnectionString (Web.config)" DbObjectName="Dbase.dbo.A" DbObjectType="Table" GenerateMethods="Get" GenerateShortCommands="True" GeneratorGetMethodName="GetDataBy2" GetMethodModifier="Public" GetMethodName="GetDataBy2" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="True" UserGetMethodName="GetDataBy2" UserSourceName="FillBy">
<SelectCommand>
<DbCommand CommandType="Text" ModifiedByUser="True">
<CommandText>SELECT A.* FROM A where convert(char(6),time,112)='200812'</CommandText>
<Parameters>
</Parameters>
</DbCommand>
</SelectCommand>
</DbSource>
...............