从SQl server中获取一些数据,然后再Dataset中计算后,再插入表中。比如一个存储过程根据某些特殊字符查出来后插入一个表。现在想不用存储过程,直接在Dataset里计算后插入表帮帮忙怎么解答啊!!!!!

解决方案 »

  1.   

    自己(建表 建字段) 加记录,把计算的值赋给记录就行:
    DataSet.Tables.Add(new DataTable());
      

  2.   

     class basicOperation
        {
            string source = @"Data source=CMD-PC;Initial Catalog=mytest;Integrated Security=SSPI;";
    /*解释一下:
    * Data source=CMD-PC     是数据源,也就是数据库所在的服务器
    * Initial Catalog=mytest      是要操作是数据库(这里是mytest)
    * Integrated Security=SSP   安全性选择的是SSPI  (针对windows系统的)也可以把SSPI换成true
    */
            string squry = "SELECT [id],[name] FROM [mytest].[dbo].[depart]";
            public void selectquery()
            {
                //*******************************************************************************
                SqlConnection conn=new SqlConnection(source);
                SqlDataAdapter adp = new SqlDataAdapter(squry,conn);
                DataSet dataset = new DataSet();
                adp.Fill(dataset ," [mytest].[dbo].[depart]");
                //*******************************************************************************
                foreach (DataRow row in dataset.Tables[" [mytest].[dbo].[depart]"].Rows)/*注意这里:如果用的是sqlserver2008时,数据库字要填写完整,否则会告诉你找不到什么实例之类的错误*/
                    Console.WriteLine(row[0]);
                conn.Close();
              }
     
            public void addItems()
            {
                SqlConnection conn = new SqlConnection(source);
     
                SqlDataAdapter adp = new SqlDataAdapter(squry, conn);
                SqlCommandBuilder cmd = new SqlCommandBuilder(adp);
                DataSet dataset = new DataSet();
                adp.Fill(dataset, "[mytest].[dbo].[depart]");
     
                //*************添加新行****************
                DataRow newrow = dataset.Tables["[mytest].[dbo].[depart]"].NewRow();
     
                newrow["id"] = 7;
                newrow["name"] = "商旅学院";
     
                dataset.Tables["[mytest].[dbo].[depart]"].Rows.Add(newrow);
                adp.Update(dataset, "[mytest].[dbo].[depart]");
     
                conn.Close();
            }
     
            public void modifyIterms()
            {
                SqlConnection conn = new SqlConnection(source);
                SqlDataAdapter apt = new SqlDataAdapter(squry,conn);
                SqlCommandBuilder cmd = new SqlCommandBuilder(apt);
                DataSet dataset = new DataSet();
                apt.Fill(dataset,"[mytest].[dbo].[depart]");
     
                //**********更新数据**************************
                Console.WriteLine("当前行是{0}", dataset.Tables["[mytest].[dbo].[depart]"].Rows[5]["name"]);
     
                dataset.Tables["[mytest].[dbo].[depart]"].Rows[5]["name"] = "城建学院";
                apt.Update(dataset, "[mytest].[dbo].[depart]");
     
                Console.WriteLine("修改后的结果是 {0}", dataset.Tables["[mytest].[dbo].[depart]"].Rows[5]["name"]);
                conn.Close();           
            }
     
            public void deleteIterms()
            {
                SqlConnection conn = new SqlConnection(source);
                SqlDataAdapter adp = new SqlDataAdapter(squry, conn);
                SqlCommandBuilder cmd = new SqlCommandBuilder(adp);
                DataSet dataset = new DataSet();
                adp.Fill(dataset,"[mytest].[dbo].[depart]");
     
                //*****************删除数据
                 Console.WriteLine("当前有{0}行", dataset.Tables["[mytest].[dbo].[depart]"].Rows.Count);
                 
                DataColumn[] keys=new DataColumn[1];
                keys[0]=dataset.Tables["[mytest].[dbo].[depart]"].Columns["id"];
                dataset.Tables["[mytest].[dbo].[depart]"].PrimaryKey=keys;
                DataRow deleteRow=dataset.Tables["[mytest].[dbo].[depart]"].Rows.Find(6);
     
                if(deleteRow!=null){
                    deleteRow.Delete();
                    adp.Update(dataset,"[mytest].[dbo].[depart]");
                }
     
                Console.WriteLine("删除当前行,结果是{0}行",dataset.Tables["[mytest].[dbo].[depart]"].Rows.Count);
                conn.Close();
            }
        }
      

  3.   


    楼上的太复杂了1.如果你要显示在UI上你可以用楼上的方法。
    2.如果你只是为数据采集那我推荐你用 INSERT INTO(F1,F1,n,) SELECT  语句直接处理。
      

  4.   

    毕竟 DataSet 是内存 数据都了很耗资源的。
      

  5.   

    楼上的大神。我就是想用Windows 服务来采集数据到Dataset里面进行处理后 插入到数据库的。。原来的数据库的存储过程计算的。。想用Winows 服务代替  但是就是不知道怎么样采集数据到Dataset里面计算后插入到数据库里。有没有具体的代码参考下