C#datagridview多表查询后如何更新 30
voidButton1Click(objectsender,EventArgse){if(MessageBox.Show("确定提交?","",MessageBoxBut...
void Button1Click(object sender, EventArgs e)
{
if (MessageBox.Show("确定提交?", "", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.OK)
{ dataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit);
dataGridView1.EndEdit();
string strPath = @"Provider=Microsoft.ACE.OLEDB.12.0;Persist Security Info=False;Data Source=|DataDirectory|\教务管理.accdb";
using (OleDbConnection con = new OleDbConnection(strPath))
{
con.Open();
using (OleDbCommand cmd = con.CreateCommand())
{
string sqlgrade = string.Format("select 课程名,课程.课程号,替代课程号,学分,课程属性,考试类型,学号,成绩 from 课程,成绩,教师 where 课程.课程号=成绩.课程号 and 课程.授课教师=教师.姓名 and 教师.工号='{0}' and 课程.课程名='{1}' order by 学号",username,comboBox1.Text);
cmd.CommandText =sqlgrade;
OleDbDataAdapter oda = new OleDbDataAdapter(cmd);
DataTable dt =(DataTable)dataGridView1.DataSource;
OleDbCommandBuilder builder = new OleDbCommandBuilder(oda);
oda.Update(dt);
dt.AcceptChanges();
MessageBox.Show("操作已成功!数据已保存", "", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button2);
前面用datagridview显示了多表查询的内容,现在修改后需要更新回那几个表,用普通的办法不能同时更新到多个表,而且其实我只需要更新成绩就行了,求解决方法 展开
{
if (MessageBox.Show("确定提交?", "", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.OK)
{ dataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit);
dataGridView1.EndEdit();
string strPath = @"Provider=Microsoft.ACE.OLEDB.12.0;Persist Security Info=False;Data Source=|DataDirectory|\教务管理.accdb";
using (OleDbConnection con = new OleDbConnection(strPath))
{
con.Open();
using (OleDbCommand cmd = con.CreateCommand())
{
string sqlgrade = string.Format("select 课程名,课程.课程号,替代课程号,学分,课程属性,考试类型,学号,成绩 from 课程,成绩,教师 where 课程.课程号=成绩.课程号 and 课程.授课教师=教师.姓名 and 教师.工号='{0}' and 课程.课程名='{1}' order by 学号",username,comboBox1.Text);
cmd.CommandText =sqlgrade;
OleDbDataAdapter oda = new OleDbDataAdapter(cmd);
DataTable dt =(DataTable)dataGridView1.DataSource;
OleDbCommandBuilder builder = new OleDbCommandBuilder(oda);
oda.Update(dt);
dt.AcceptChanges();
MessageBox.Show("操作已成功!数据已保存", "", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button2);
前面用datagridview显示了多表查询的内容,现在修改后需要更新回那几个表,用普通的办法不能同时更新到多个表,而且其实我只需要更新成绩就行了,求解决方法 展开
1个回答
展开全部
你重新写一个查询的方法,方法中要将数据源与datagridview绑定,查询的时候调用一下,更新的时候再调用一次就行了
追问
具体一点好吗、我要会就不会问了、
追答
using (OleDbConnection con = new OleDbConnection(strPath))
{
con.Open();
using (OleDbCommand cmd = con.CreateCommand())
{
string sqlgrade = string.Format("select 课程名,课程.课程号,替代课程号,学分,课程属性,考试类型,学号,成绩 from 课程,成绩,教师 where 课程.课程号=成绩.课程号 and 课程.授课教师=教师.姓名 and 教师.工号='{0}' and 课程.课程名='{1}' order by 学号",username,comboBox1.Text);
cmd.CommandText =sqlgrade;
OleDbDataAdapter oda = new OleDbDataAdapter(cmd);
DataTable dt =(DataTable)dataGridView1.DataSource;
把这一段重新写成一个方法,然后datagridview加载时调用,修改后再调用一次,还是几个表查询出来的内容
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询