小弟现在我写了一个东东,遇到了些问题。就是对数据库更新。
我用的Access。在数据库里有一个表叫学生基本信息。这个表里的学号是主建。
我写的更新代码如下:
OleDbConnection thisConnection = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\学生管理.mdb");
OleDbDataAdapter thisAdapter = new OleDbDataAdapter("select * from 学生基本信息",thisConnection);
OleDbCommandBuilder thisBuilder = new OleDbCommandBuilder(thisAdapter);
DataSet thisDataSet = new DataSet();
thisAdapter.Fill(thisDataSet,"学生基本信息");
thisDataSet.Tables["学生基本信息"].Rows[0]["姓名"] = txtBoxStuName.Text;
thisAdapter.Update(thisDataSet,"学生基本信息");
在这里:thisDataSet.Tables["学生基本信息"].Rows[0]["姓名"] = txtBoxStuName.Text;这行我需要更改,但确实不知道怎么找出学号那行索引了。
请各位帮帮忙~小弟谢谢了!或者告诉我"update 学生基本信息 set ... ... ... ... where 学号=txtStudentNumber.txt"应该写哪里
我用的Access。在数据库里有一个表叫学生基本信息。这个表里的学号是主建。
我写的更新代码如下:
OleDbConnection thisConnection = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\学生管理.mdb");
OleDbDataAdapter thisAdapter = new OleDbDataAdapter("select * from 学生基本信息",thisConnection);
OleDbCommandBuilder thisBuilder = new OleDbCommandBuilder(thisAdapter);
DataSet thisDataSet = new DataSet();
thisAdapter.Fill(thisDataSet,"学生基本信息");
thisDataSet.Tables["学生基本信息"].Rows[0]["姓名"] = txtBoxStuName.Text;
thisAdapter.Update(thisDataSet,"学生基本信息");
在这里:thisDataSet.Tables["学生基本信息"].Rows[0]["姓名"] = txtBoxStuName.Text;这行我需要更改,但确实不知道怎么找出学号那行索引了。
请各位帮帮忙~小弟谢谢了!或者告诉我"update 学生基本信息 set ... ... ... ... where 学号=txtStudentNumber.txt"应该写哪里
OleDbDataAdapter thisAdapter = new OleDbDataAdapter("select * from 学生基本信息",thisConnection);写在上面就可以了
可是这个我不知道应该怎么加,加在哪,但是要用thisDataSet.Tables["学生基本信息"].Rows[0]["姓名"] = txtBoxStuName.Text这个方法的话Rows里的索引我又不知道怎么找,当然,这个索引也是通过学号来找在表中的索引
{
OleDbConnection thisConnection = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\学生管理.mdb");
string sqlstr="";
OleDbConnection thisConnection = getConn();
thisConnection.Open();
OleDbCommand myCommand = new OleDbCommand("select * from 学生基本信息 where 学号=XXX",thisConnection);
myCommand.ExecuteNonQuery();
thisConnection.Close();}
OleDbConnection thisConnection = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\学生管理.mdb");
string sqlstr="";
OleDbConnection thisConnection = getConn();
thisConnection.Open();
OleDbCommand myCommand = new OleDbCommand("select * from 学生基本信息 where 学号=XXX",thisConnection);
myCommand.ExecuteNonQuery();
thisConnection.Close();
1. 在SQL语句中过滤 OleDbDataAdapter thisAdapter = new OleDbDataAdapter("select * from 学生基本信息 where 学号='你要查的学号'",thisConnection);
然后可以直接用 thisDataSet.Tables["学生基本信息"].Rows[0]["姓名"] = txtBoxStuName.Text;找到记录并把txtBoxStuName.Text值写进去
2.thisDataSet.select("学号='" + 输入你要找的学号 + "'")
3.自己写循环把你需要符合的学号的记录找到
可是小弟我还有个地方不明白
你的第一种方法,虽然按照学号索引了,但为什么接用 thisDataSet.Tables["学生基本信息"].Rows[0]["姓名"] = txtBoxStuName.Text;就OK了?
这个Rows后面不是跟的是要找的行的索引吗?
这都是c#自动的?
你们一定接帖来啊
虽然按照学号索引了,但为什么接用 thisDataSet.Tables["学生基本信息"].Rows[0]["姓名"] = txtBoxStuName.Text;就OK了?
这个Rows后面不是跟的是要找的行的索引吗?
这都是c#自动的?
OleDbDataAdapter thisAdapter = new OleDbDataAdapter("select * from 学生基本信息 where 学号='你要查的学号'",thisConnection);
这里就已经过滤thisDataSet只有符合条件的一条记录了,所以后面可以直接用
thisDataSet.Tables["学生基本信息"].Rows[0]["姓名"] = txtBoxStuName.Text;就OK了
ds.Tables[0].Select("学号='" + 你要找的学号 + "'")[0]["姓名"]=txtBoxStuName.Text;
这种方法简便。