你这些问题都是xml操作问题,去msdn上看xmldocument的使用

解决方案 »

  1.   

    http://blog.csdn.net/jupiter97/article/details/1610176  可以参考里面的方法,改改应该可以实现了。
      

  2.   

    这个是写死的,我的是第一种情况是在DataGridView中的数据,根据某一列来导出不同的。
    第二种情况是,我通过SQL查询出一个xml类型数据列,把这列已第一列不同导出不同的XML文件。
      

  3.   

    http://blog.csdn.net/happy09li/article/details/7460521
      

  4.   

    是DataGridView里面有上千行数据,根据第一列运单号不同,到出不同的XML文件,文件以运单号命名,值是该运单对应的商品代码。
      

  5.   


    比如上面这个图片,有两个运单号码:2986257,2995974对应不同的商品代码,那么导出后应该有两个xml文件
    2986257.xml和2995974.xml里面明细就是商品代码。
      

  6.   

    知道了,这应该不难写,根据运单号来找出所以要同的运单号,并找出取出对应的行,再生成XML,你可以将相同的运单号的数据都写到dataset里,再生成XML就可
      

  7.   

    我查询的时候所有数据就用了一个dataset
    this.dgv1.DataSource = c_function.getds(sql).Tables[0];
    求例子啊,我不会自己写,我只会看着别人的代码修修补补。新手,才开始学习C#
      

  8.   

    只有相同的数据放一个才形成相应的XML的,有空帮你写个例子,
      

  9.   

    将数据显示在dataGridView1,同时将运单号显示在listbox里,点listbox里的运单号,就生成相应文件名的XML,如果有多条数据,XML也保存多条数据
    我这里用listbox,如果直接点dataGridView1里运单号,代码要修改一下        //新建一个datatable用于保存读入的数据       
            //给datatable添加三个列
            dt.Columns.Add("运单号", typeof(String));
            dt.Columns.Add("商品代码", typeof(String));
            dt.Columns.Add("商品名称", typeof(String));
            
            //读入文件
            DataSet ds=new DataSet();
            using (StreamReader reader = new StreamReader("1.txt", Encoding.Default))
            {
                //循环读取所有行
                while (!reader.EndOfStream)
                {
                    //将每行数据,用-分割成3段
                    string[] data = reader.ReadLine().Split(' ');//每行数据之间有一个空格 
                    //新建一行,并将读出的数据分段,分别存入对应的列中,有几列建立几个
                    DataRow dr = dt.NewRow();
                    dr[0] = data[0];
                    dr[1] = data[1];
                    dr[2] = data[2];             
                    //将这行数据加入到datatable中
                    dt.Rows.Add(dr);                
                }
            }
            //将datatable绑定到datagridview上显示结果
            this.dataGridView1.DataSource = dt;      //  DataTable dt=(DataTable)this.datagridview.DataSource;
             for(int i=0;i<dataGridView1.RowCount-1;i++)
           {
               if (!listBox3.Items.Contains(dt.Rows[i]["运单号"].ToString()))
                 {
                     listBox3.Items.Add(dt.Rows[i]["运单号"].ToString());
                 }
             }
       private void listBox3_SelectedIndexChanged(object sender, EventArgs e)
          {
              DataRow[] drs = dt.Select("运单号 like '%" + listBox3.SelectedItem.ToString().Trim() + "%'");
            DataSet ds = new DataSet();
            DataTable newdt=ToDataTable1(drs);
            newdt.TableName=("newtable");
            newdt.WriteXml(listBox3.SelectedItem.ToString().Trim()+".xml");
            MessageBox.Show("ok");
    }
      

  10.   

    漏了:DataTable dt = new DataTable();这个做全局变量,
      

  11.   


    还要加上这个:将取出的多行值放到新表中,
      public DataTable ToDataTable1(DataRow[] rows)
            {
                if (rows == null || rows.Length == 0) return null;
                DataTable tmp = rows[0].Table.Clone();  // 复制DataRow的表结构
                foreach (DataRow row in rows)
                    tmp.Rows.Add(row.ItemArray);  // 将DataRow添加到DataTable中
                return tmp;
            }
      

  12.   

    如果是用sql 查询出来的数据如下也就是运单好,后面跟这我查询好的xml文件的内容(数据库里面可以是varchar型也可以是xml型的列)。怎么样输出到xml文件中?
      

  13.   

     //将datatable绑定到datagridview上显示结果
            this.dataGridView1.DataSource = dt;
    这句子以上的代码是我在dataGridView1里做一些数据的,你可以用,
    这个代码是数据绑定到dataGridView1后,放到后面,让运单号显示在listBox3里
       for(int i=0;i<dataGridView1.RowCount-1;i++)
           {
               if (!listBox3.Items.Contains(dt.Rows[i]["运单号"].ToString()))
                 {
                     listBox3.Items.Add(dt.Rows[i]["运单号"].ToString());
                 }
             }
      

  14.   

    怎么写啊?比如数据表是。create table tb(id int,str xml)
      

  15.   


     Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
     Dim cnn As New SqlConnection
            cnn.ConnectionString = "server=192.168.1.2;database=data;user id=sa;password=sa"
            cnn.Open()
            Dim ds As New DataSet
            Dim da As New SqlDataAdapter("select * from table", cnn)
            cnn.Close()
            da.Fill(ds, "table")
            If ds.Tables(0).Rows.Count <> 0 Then
                Dim i As Integer
                For i = 0 To ds.Tables(0).Rows.Count - 1
                    Dim id As String = ds.Tables(0).Rows(i)("CorpOrderID").ToString()
                    Dim xml As String = ds.Tables(0).Rows(i)("xmlCol").ToString()
                    writexml(id, xml)
                Next
            End If
     End Sub
     Public Sub writexml(ByVal id As String, ByVal xml As String)
            Dim sw As StreamWriter = New StreamWriter(Application.StartupPath + "\" + id + ".xml", False, Encoding.UTF8)
            Try
                sw.WriteLine(xml)
                sw.Close()
            Catch ex As Exception
                MessageBox.Show(ex.Message)
            End Try
        End Sub
      

  16.   

    1、将查询的数据取出 
     Dim id As String = ds.Tables(0).Rows(i)("CorpOrderID").ToString()
     Dim xml As String = ds.Tables(0).Rows(i)("xmlCol").ToString()
    2、writexml 将取得的数据写到以ID为文件名的文件里,
      

  17.   


       //按id不同形成不同的文件,文件内容是XML
       public void writexml(string id,string xml)
         {
                
             StreamWriter sw =new StreamWriter(Application.StartupPath + @"\" + id + ".xml");
             try 
             {
                sw.WriteLine(xml);
                sw.Close();
             }
             catch (Exception ex )
             {
                MessageBox.Show(ex.Message);
             }   
         }
        private void button18_Click(object sender, EventArgs e)
        { 
            SqlConnection cnn=new SqlConnection();               
            cnn.ConnectionString = @"server=192.168.1.2;database=data;user id=sa;password=sa";
            cnn.Open();
            DataSet ds =new DataSet();        
            SqlDataAdapter da=new SqlDataAdapter("select * from table", cnn);        
            cnn.Close();
            da.Fill(ds, "table");        
            if(ds.Tables[0].Rows.Count==0)
            {            
                for(int i=0;i<ds.Tables[0].Rows.Count - 1;i++)
                {
                    string id = ds.Tables[0].Rows[i]["CorpOrderID"].ToString();
                    string xml = ds.Tables[0].Rows[i]["xmlCol"].ToString();
                    writexml(id, xml);
                }
            
            }    }
      

  18.   

    Application.StartupPath,这是不是应用程序可执行文件目录?没有嘛。我水平臭啊,才接触C#
      

  19.   

    怕是要先新建好这个文件呢Application.StartupPath + @"\" + id + ".xml",id.xml文件都没有新建嘛
      

  20.   

    Application.StartupPath,这是不是应用程序可执行文件目录?没有嘛。我水平臭啊,才接触C#
    是的,新建的文件都放在EXE的目录下
      

  21.   

    求修改,不会。        //按id不同形成不同的文件,文件内容是XML
            public void CreateXML(string FileName, string XMLContent)
            {
                //文件保存目录
                string DataPath = "F:\\";
                //判断文件是否已经存在,如果存在即覆盖
                if (File.Exists(DataPath + FileName))
                {
                    File.Delete(DataPath + FileName);
                }
                FileStream objFileStream = new FileStream(DataPath + FileName, FileMode.Append, FileAccess.Write);
                StreamWriter sw = new StreamWriter(objFileStream, Encoding.Default);
                try
                {
                    sw.WriteLine("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
                    sw.WriteLine(XMLContent);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
                finally
                {
                    sw.Flush();
                    sw.Close();
                }
            }
      

  22.   

    不错,考虑要加上<?xml version=\"1.0\" encoding=\"utf-8\"?>"
      

  23.   

    可以个屁哦,F盘,exe目录什么变换都没有。
      

  24.   

    要不你append 修改为Create,不然都添加了,
       FileStream objFileStream = new FileStream(DataPath + FileName, FileMode.Create, FileAccess.Write);调用:例子
     private void button20_Click(object sender, EventArgs e)
        {
            CreateXML("aaa.xml", "<birthday><NO1><type>类型</type><date>时间</date><title>信息</title><name>姓名</name></NO1><NO2><type>类型</type><date>时间</date><title>信息</title><name>姓名</name></NO2></birthday>");
        }
      

  25.   

    //文件保存目录
                string DataPath = "F:\\";你这里就将文件在f根目录下输出了,你保存后会在f:\下找到XML文件,
      

  26.   

    都保存了100次了,也改成create了,什么都没有,狗屎都没有一抛
      

  27.   

    ....我知道哪里错了
    if(ds.Tables[0].Rows.Count==0)  都等于0了哪里来的记录啊。要是if(ds.Tables[0].Rows.Count!=0)才对
    这下文件倒是建立了,名字也是对的,但是里面的内容是空的,什么都没有。