在写某个文本框与数据库中某个表的字段进行绑定时,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"));
这样写有问题吗?
或许应该改成什么样?
部分代码如下: 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"));
这样写有问题吗?
或许应该改成什么样?
this.dataGrid1.DataSource = dataSet.Tables[0];
这样?
我现在的问题是在第二段代码中
那个textbox绑定数据有问题
程序一执行到那就会程序停止工作
不知道为什么
不然由你怎么绑定都不行!
你换成这种方式 试试:
<asp:Label ID="lblStates" runat="server" Text='<%#Eval("数据库绑定字段")>'></asp:Label>
将textbox控件的 text属性改成上面那样!
我是想把字段内容显示在某个textbox中
之前我用的是这种写法:
this.textBox1.Text = dataSet.Tables[0].Rows[recordPos][0].ToString();
这样是可以的
今天在书上看到了有这种绑定的方法
this.textBox1.DataBindings.Add(new Binding("Text", this.dataSet, "SNO"));
就用了试试看
但是一直有问题
第一种方法是直接在已经绑定的dataSet中对table中的行进行设置
第二种方法是又在特textbox中再次绑定了dataset 所以要是用这种方法的话 你可以试一试把this.dataGrid1.DataSource = dataSet; 这句话去了不知道行不行啊 纯属猜测
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"));这是可以的
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"));
再用DataBindings.Add(new Binding("Text", dataTable, "Name"));
这个方法就有问题了
因为我对2个控件都进行了绑定
一个是dataGrid1
一个是textbox1
是dataSet的问题
绑定的语句里应该把dataSet改成dataSet.Tables[0]就行了