我想先把数据记录放入dataset里面,然后统一存入数据库里面。所以我定义dataset为一个全局变量,定义一个记录数据记录行数的全局变量count。编译时没有问题的,运行的时候说,datatable[0]不存在,请问怎么改进?谢谢!代码如下:
using System.Text;
using System.Windows.Forms;namespace datasettest
{
    public partial class Form1 : Form
    {
        DataSet ds = new DataSet();
        int count = 0;
        public Form1()
        {
            InitializeComponent();
        }
        void function(int i)
        {
            ds.Tables[0].Rows[count][0] = i.ToString();
            ds.Tables[0].Rows[count][1] = i.ToString();
        }
        private void btclick_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < 10; i++)
                function(i);
        }
    }
}

解决方案 »

  1.   

    DataSet需要填充table才能访问ds.Tables[0],你可以创建一个datatable,然后加入到ds.Tables
      

  2.   

    先把数据插入到一个datatable中,把这个datatable再插入到dataset中。
      

  3.   

    //创建表
    DataTable dt1=new DataTable();
    //创建列
    dt1.Columns.Add("列1");//添加到DataSet
    ds.Tables.Add(dt1);
      

  4.   


    using System.Text;
    using System.Windows.Forms;namespace datasettest
    {
        public partial class Form1 : Form
        {
            DataSet ds = new DataSet();
            DataTable dt = new DataTable();
            dt.Columns.Add("Columns1");//Columns1为你要定义的列名
            dt.Columns.Add("Columns2");//Columns2为你要定义的列名
            int count = 0;
            public Form1()
            {
                InitializeComponent();
            }
            void function(int i)
            {
                DataRow dtRow = dt.NewRow();
                dtRow["Columns1"] = i.ToString();
                dtRow["Columns2"] = i.ToString();
                dt.Rows.Add(dtRow);
            }
            private void btclick_Click(object sender, EventArgs e)
            {
                for (int i = 0; i < 10; i++)
                    function(i);
                ds.Tables.Add(dt);
            }
        }
    }
      

  5.   


    DataSet需要填充table才能访问ds.Tables[0],你可以创建一个datatable,然后加入到ds.Tables