怎么用强类型的DataSet??
从XML中读取形成DataSet,但一些SQL在DataTable的Select不能用!!
在网上查了一下可以用强类型的DataSet,但多数例子都是在界面上用Shift+Ctrl+B直接转换,但我是在数据函数中使用,应该怎么定义强类型的DataSet???
谢谢!

解决方案 »

  1.   

    http://msdn.microsoft.com/zh-cn/library/wha85tzb(VS.80).aspxhttp://social.msdn.microsoft.com/Search/zh-CN/?query=%E5%BC%BA%E7%B1%BB%E5%9E%8B%E7%9A%84dataset&ac=8
      

  2.   

    1.创建类型的DataSet---右击App_code/添加新项/数据集
    2.访问数据集
    (一)最简单的是通过ObjectDataSource控件;
    (二)和传统的一样,实例化数据集中的一个类,(适配器类)我用下来,绝大部分正常的Select语句都没问题!!
      

  3.   

    to :downmoon  
    未能找到文件“D:\Visual Studio 8\VC\XSDSchemaFileName.xsd
      

  4.   

    to :koukoujiayi
            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
    谢谢!!!!!
      

  5.   

    推荐给你:
    美国人Scott Mitchell 的ASP_NET 2_0数据教程 
    google一下,有教程,有代码,三层开讲,强类型的DataSet!
      

  6.   

    强类型的就不用select了吧, 直接对象行操作判断
      

  7.   

    在.net的命令提示中 输入:
    xsd.exe /d /l:CS XSDSchemaFileName.xsd /n:XSDSchema.Namespace
      

  8.   

    to sdyt91:
    用强类型的dataset好象没有看到你这种用法!!
    事实上强类型的dataset除了更加对象化以外,减少代码量也是个目的,
    你这样和传统的代码量没有什么改变!!看看老外写的,中国人在编程方面只能看老外的!!
    看本国人编的要么是照抄老外的,要么就是胡编!!
      

  9.   

    谢谢,大家!!
    我的思路是把数据从数据库中导出形成XML,然后用DataSet从XML读取数据,在内存中形成数据库,这样可以在数据库发生问题是程序能正常运行!
    呵呵,结果发现不是那么简单,很多SQL在DataSet中没法执行,比如:convert(char(6),活动日期,112)='200902'、以及多表联合查询等等都比较麻烦,虽然也可以通过别的方法实现,但这样就需要修改原来的SQL,但是SQL的情况太多了,实在是太麻烦了。
    大家帮忙想想有啥好方法??
    谢谢!!
      

  10.   

    这句"convert(char(6),活动日期,112)='200902'"
    我试过在强类型的DataSet中是可以的,
    看了一下XML没什么异样!!
      

  11.   

    用convert(char(6),活动日期,112)='200902'会提示:
    表达式包含未定义的函数调用 char()
      

  12.   

    我做过,常规的做法毫无问题!!
    给你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>
    ...............
      

  13.   

    http://www.itstrike.cn/tags.php?/dataset/?