日期:2014-05-17  浏览次数:21433 次

C#dataset如何赋予初始值?
我想先把数据记录放入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);
  }
  }
}

------解决方案--------------------
//创建表
DataTable dt1=new DataTable();
//创建列
dt1.Columns.Add("列1");

//添加到DataSet
ds.Tables.Add(dt1);
------解决方案--------------------
C# code

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);
        }
    }
}