在写某个文本框与数据库中某个表的字段进行绑定时,ms有点问题,一运行到那句就程序出错
部分代码如下:            string connectionString = "Data Source=ORCL;User ID=fice;Password=fice";
            string queryString = "select s.sno,sname,cname,grade from student s,student_course sc,course c where s.sno=sc.sno and sc.cno=c.cno order by cname,grade desc";            cn = new OracleConnection(connectionString);
            dataAdapter = new OracleDataAdapter(queryString, cn);
            cmd = cn.CreateCommand();            cmd.CommandText = queryString;
            cn.Open();            dataReader = cmd.ExecuteReader();            dataSet = new DataSet();            dataAdapter.Fill(dataSet);
            this.dataGrid1.DataSource = dataSet;
            this.textBox1.DataBindings.Add(new Binding("Text", this.dataSet, "SNO"));
            this.textBox2.DataBindings.Add(new Binding("Text", this.dataSet, "SNAME"));
            this.textBox3.DataBindings.Add(new Binding("Text", this.dataSet, "CNAME"));
            this.textBox4.DataBindings.Add(new Binding("Text", this.dataSet, "GRADE"));
这样写有问题吗?
或许应该改成什么样?

解决方案 »

  1.   

    DataGrid的DataSource需要是DataSet里面某个表
      

  2.   

    你的意思是
    this.dataGrid1.DataSource = dataSet.Tables[0];
    这样?
      

  3.   

    sl2161你说的那个地方没问题
    我现在的问题是在第二段代码中
    那个textbox绑定数据有问题
    程序一执行到那就会程序停止工作
    不知道为什么
      

  4.   

    你看看你查询出来的结果是不是为空?
       不然由你怎么绑定都不行!
          你换成这种方式 试试:
    <asp:Label ID="lblStates" runat="server" Text='<%#Eval("数据库绑定字段")>'></asp:Label>
      将textbox控件的 text属性改成上面那样!
         
      

  5.   

    查询是正确的
    我是想把字段内容显示在某个textbox中
    之前我用的是这种写法:
    this.textBox1.Text = dataSet.Tables[0].Rows[recordPos][0].ToString();
    这样是可以的
    今天在书上看到了有这种绑定的方法
    this.textBox1.DataBindings.Add(new Binding("Text", this.dataSet, "SNO"));
    就用了试试看
    但是一直有问题
      

  6.   

    你绑定了两遍吧
    第一种方法是直接在已经绑定的dataSet中对table中的行进行设置
    第二种方法是又在特textbox中再次绑定了dataset 所以要是用这种方法的话 你可以试一试把this.dataGrid1.DataSource = dataSet; 这句话去了不知道行不行啊  纯属猜测  
      

  7.   

     DataTable dataTable = new DataTable();            dataTable.Columns.Add("Name");
                dataTable.Columns.Add("Value");            DataRow dataRow = dataTable.NewRow();
                dataRow["Name"] = "download";
                dataRow["Value"] = "OK";            dataTable.Rows.Add(dataRow);            dataRow = dataTable.NewRow();
                dataRow["Name"] = "upload";
                dataRow["Value"] = "FAIL";            dataTable.Rows.Add(dataRow);            textBoxDes.DataBindings.Add(new Binding("Text", dataTable, "Name"));这是可以的
      

  8.   

    DataTable dataTable = new DataTable();            dataTable.Columns.Add("Name");
                dataTable.Columns.Add("Value");            DataRow dataRow = dataTable.NewRow();
                dataRow["Name"] = "download";
                dataRow["Value"] = "OK";            dataTable.Rows.Add(dataRow);            dataRow = dataTable.NewRow();
                dataRow["Name"] = "upload";
                dataRow["Value"] = "FAIL";            dataTable.Rows.Add(dataRow);            DataSet dataSet = new DataSet();
                dataSet.Tables.Clear();
                dataSet.Tables.Add(dataTable);            textBoxDes.DataBindings.Add(new Binding("Text", dataSet, "Name"));这也不行,但是下面是可以的
    textBoxDes.DataBindings.Add(new Binding("Text", dataSet.Tables[0], "Name"));
      

  9.   

    回复wowoj2ee:你这样是DataTable dataTable = new DataTable();新建的表,这样子是没问题但我现在要操作的表是数据库中导入的表
    再用DataBindings.Add(new Binding("Text", dataTable, "Name")); 
    这个方法就有问题了
      

  10.   

    回zf522:
    因为我对2个控件都进行了绑定
    一个是dataGrid1
    一个是textbox1
      

  11.   

    恩,解决了
    是dataSet的问题
    绑定的语句里应该把dataSet改成dataSet.Tables[0]就行了