简单的方法就是绑定后`用adapter更新`
绑定:
SqlDataAdapter SDA = new SqlDataAdapter();
SqlCommand SCMD = new SqlCommand(Select_String, Conn);
SDA.SelectCommand = SCMD;
SDT.Clear();
SDA.Fill(SDT);
datagridview.DataSource = SDT;
更新:
SqlCommandBuilder SCB = new SqlCommandBuilder(SDA);
SDA.Update(SDT);
绑定:
SqlDataAdapter SDA = new SqlDataAdapter();
SqlCommand SCMD = new SqlCommand(Select_String, Conn);
SDA.SelectCommand = SCMD;
SDT.Clear();
SDA.Fill(SDT);
datagridview.DataSource = SDT;
更新:
SqlCommandBuilder SCB = new SqlCommandBuilder(SDA);
SDA.Update(SDT);
解决方案 »
- 寻求大神帮忙~咨询一些关于编程的事情~小弟真心拜谢
- 集合随机抽取元素问题
- Socket问题:在不断尝试拔插客户端网线以后,Server再也不响应客户端端请求了。急。。。
- NickLee.FortuneJava(2007.2) for Vs.net2005 SP1、mainsoft、Java、Linux
- 散分!!顺便问一下工作流指的是什么呀
- EPON在广电中的应用及设计问题
- 有一个水晶报表,我已经传入一个DataSet,请问还可以传递别的参数吗?
- 新手问题.
- 请教,C#如何取得当前Windows的顶层窗
- C#的初级问题?
- C#,Access和datagridview的操作问题
- 如何最快判断字符串“123456”全是数字,而“1234WW”不全部是数字?
添加:在DataTable新增一行,值为空,然后绑定到DataGridView,点"保存"按钮更新数据库.
修改:获取DataGridView中当前行的索引,将这一行设置可修改状态,点"保存"按钮更新数据库.
删除:获取DataGridView中当前行的索引,在DataTalbe中找到对就的行删除,再次绑定,同时获取这一行的主键值,删除数据库中的行实现和界面同步.
说的是那么回事
如數據源 select a.id,b.name,b.detail from a,b where a.id=b.id
如果要更新b表,如果b表還有一些字段沒有顯示
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient; namespace 学生成绩管理系统
{
public partial class studentshanchu : Form
{
CurrencyManager cmAmend; public studentshanchu()
{
InitializeComponent();
} private void studentshanchu_Load(object sender, EventArgs e)
{
// TODO: 这行代码将数据加载到表“studentDataSet.studentinfo”中。您可以根据需要移动或移除它。
//this.studentinfoTableAdapter.Fill(this.studentDataSet.studentinfo);
//数据绑定
string sqlsel = "select * from studentinfo ";
DataTable dt = bangding(sqlsel);
cmAmend = (CurrencyManager)BindingContext[dt];
this.dataGridView1.DataSource = dt;
this.textBox1.DataBindings.Add("text", dt, "sno");
this.textBox2.DataBindings.Add("text", dt, "sname");
this.textBox3.DataBindings.Add("text", dt, "ssex");
this.textBox4.DataBindings.Add("text", dt, "sage");
this.textBox5.DataBindings.Add("text", dt, "sclass");
this.textBox6.DataBindings.Add("text", dt, "sdept");
this.textBox7.DataBindings.Add("text", dt, "saddress");
this.textBox8.DataBindings.Add("text", dt, "sphone");
this.textBox9.DataBindings.Add("text", dt, "sqq"); } DataTable bangding(string sqlsel)
{
string connstr = "server=.;uid=sa;pwd=sa;database=sc";
using (SqlConnection conn = new SqlConnection(connstr))
{
conn.Open();
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(sqlsel, conn);
da.Fill(ds, "coust");
DataTable dt = ds.Tables["coust"];
conn.Close();
return dt;
} } private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
if (checkBox1.Checked == true)
{ this.Height = 450; }
else
{ this.Height = 250; }
} private void button1_Click(object sender, EventArgs e)
{
if (MessageBox.Show("你确定要删除该记录吗", "询问", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
{
int pos = this.dataGridView1.CurrentCell.RowIndex; //获取该行 string connstr = "server=.;uid=sa;pwd=sa;database=sc";
using (SqlConnection conn = new SqlConnection(connstr))
{
conn.Open();
DataSet ds = new DataSet();
string sqlset = "select * from studentinfo";
//数据集
SqlDataAdapter da = new SqlDataAdapter(sqlset, conn);
da.Fill(ds, "coust");
DataTable dt = ds.Tables["coust"];
SqlCommandBuilder cb = new SqlCommandBuilder(da);
dt.Rows[pos].Delete();
da.Update(ds, "coust"); textBox1.Text = "";
textBox2.Text = "";
textBox3.Text = "";
textBox4.Text = "";
textBox5.Text = "";
textBox6.Text = "";
textBox7.Text = "";
textBox8.Text = "";
textBox9.Text = ""; this.dataGridView1.DataSource = bangding(sqlset);
MessageBox.Show("恭喜你已成功删除","温馨提示");
conn.Close();
}
}
}
}
} 修改的代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient; namespace 学生成绩管理系统
{
public partial class studentxiugai : Form
{
string connstr = "server=.;uid=sa;pwd=sa;database=sc";
string per;
string sno;
CurrencyManager cmAmend; public studentxiugai()
{
InitializeComponent();
} public studentxiugai(string k,string s)
{
InitializeComponent();
per = k;
sno = s;
} private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
if (checkBox1.Checked == true)
{ //this.Height = 450;
comboBox1.Enabled = false;
textBox1.Enabled = false;
}
else
{ //this.Height = 250;
comboBox1.Enabled = true;
textBox1.Enabled = true;
}
} private void studentxiugai_Load(object sender, EventArgs e)
{
//数据绑定
if (per == "超级用户")
{
string sqlsel = "select * from studentinfo order by sno asc ";
DataTable dt = bangding(sqlsel);
cmAmend = (CurrencyManager)BindingContext[dt]; this.comboBox1.DataSource = dt;
this.comboBox1.DisplayMember = "sno";
this.textBox1.DataBindings.Add("text", dt, "sname");
this.textBox2.DataBindings.Add("text", dt, "ssex");
this.textBox3.DataBindings.Add("text", dt, "sage");
this.textBox4.DataBindings.Add("text", dt, "sclass");
this.textBox5.DataBindings.Add("text", dt, "sdept");
this.textBox6.DataBindings.Add("text", dt, "saddress");
this.textBox7.DataBindings.Add("text", dt, "sphone");
this.textBox8.DataBindings.Add("text", dt, "sqq");
}
if (per == "普通用户")
{
string sqlsel = "select *from studentinfo where sno='" + sno + "'";
DataTable dt = bangding(sqlsel);
this.comboBox1.DataSource = dt;
this.comboBox1.DisplayMember = "sno";
this.textBox1.DataBindings.Add("text", dt, "sname");
this.textBox2.DataBindings.Add("text", dt, "ssex");
this.textBox3.DataBindings.Add("text", dt, "sage");
this.textBox4.DataBindings.Add("text", dt, "sclass");
this.textBox5.DataBindings.Add("text", dt, "sdept");
this.textBox6.DataBindings.Add("text", dt, "saddress");
this.textBox7.DataBindings.Add("text", dt, "sphone");
this.textBox8.DataBindings.Add("text", dt, "sqq");
}
}
DataTable bangding(string sqlsel)
{
// string connstr = "server=.;uid=sa;pwd=sa;database=sc";
using (SqlConnection conn = new SqlConnection(connstr))
{
conn.Open();
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(sqlsel, conn);
da.Fill(ds, "coust");
DataTable dt = ds.Tables["coust"];
conn.Close();
return dt;
} } private void button1_Click(object sender, EventArgs e) {
if (checkBox1.Checked == true)
{
string sno = comboBox1.Text;
string sname = textBox1.Text;
string sex = textBox2.Text;
string age = textBox3.Text;
string sclass = textBox4.Text;
string sdept = textBox5.Text;
string saddress = textBox6.Text;
string sphone = textBox7.Text;
string sqq = textBox8.Text;
if (textBox2.Text == "" || textBox3.Text == "" || textBox4.Text == "" || textBox5.Text == "")
{
if (textBox2.Text == "")
{ MessageBox.Show("性别不能为空", "温馨提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Error);
textBox2.Focus();
return;
} if (textBox3.Text == "")
{ MessageBox.Show("年龄不能为空", "温馨提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Error);
textBox3.Focus();
return;
} if (textBox4.Text == "")
{ MessageBox.Show("班级不能为空", "温馨提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Error);
textBox4.Focus();
return;
}
if (textBox5.Text == "")
{ MessageBox.Show("系别不能为空", "温馨提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Error);
textBox5.Focus();
return;
}
}
else
{ string connstr = "server=IT32;uid=sa;pwd='sa';database=sc;";
try
{
SqlConnection conn = new SqlConnection(connstr);
conn.Open();
string sqlupdate = " update studentinfo set ssex='" + sex + "',sage='" + age + "',sclass='" + sclass + "',sdept='" + sdept + "',saddress='" + saddress + "',sphone='" + sphone + "',sqq='" + sqq + "' where sno='" + sno + "'";
SqlCommand sc = new SqlCommand(sqlupdate, conn);
sc.ExecuteNonQuery();
MessageBox.Show("数据已经修改成功", "温馨提示");
conn.Close(); }
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
}
else
{
MessageBox.Show("对不起,你还没有选中'我要修改',所以您无法修改","温馨提示");
}
}
}
}
sqlConn.ConnectionString = "server=(local);database=northwind;Integrated Security=true"
Dim da As New SqlClient.SqlDataAdapter
Dim delcmd As New SqlCommand
'delcmd.CommandText = "delete from orders where orderID=@id"
'create proc proc_deleteOrdersByID
'@id as int
'as
'delete from orders where orderID=@id
delcmd.CommandText = "proc_deleteOrdersByID"
'delcmd.CommandType = CommandType.Text
delcmd.CommandType = CommandType.StoredProcedure
delcmd.Connection = sqlConn
delcmd.Parameters.Add("@id", SqlDbType.Int)
delcmd.Parameters("@id").SourceColumn = "orderID"
delcmd.Parameters("@id").SourceVersion = DataRowVersion.Original
da.DeleteCommand = delcmd Dim insertCmd As New SqlCommand
insertCmd.CommandText = "proc_NewOrder"
insertCmd.CommandType = CommandType.StoredProcedure
insertCmd.Connection = sqlConn
insertCmd.Parameters.Add("@custID", SqlDbType.NChar, 5)
insertCmd.Parameters("@custID").SourceColumn = "customerID"
insertCmd.Parameters("@custID").SourceVersion = DataRowVersion.Current
insertCmd.Parameters.Add("@empID", SqlDbType.Int)
insertCmd.Parameters("@empID").SourceColumn = "employeeID"
insertCmd.Parameters("@empID").SourceVersion = DataRowVersion.Current
insertCmd.Parameters.Add("@ordate", SqlDbType.DateTime)
insertCmd.Parameters("@ordate").SourceColumn = "orderdate"
insertCmd.Parameters("@ordate").SourceVersion = DataRowVersion.Current
insertCmd.Parameters.Add("@redate", SqlDbType.DateTime)
insertCmd.Parameters("@redate").SourceColumn = "requireddate"
insertCmd.Parameters("@redate").SourceVersion = DataRowVersion.Current
da.InsertCommand = insertCmd Dim updateCmd As New SqlCommand
updateCmd.CommandText = "proc_modifyOrder"
updateCmd.CommandType = CommandType.StoredProcedure
updateCmd.Connection = sqlConn
updateCmd.Parameters.Add("@orderID", SqlDbType.Int)
updateCmd.Parameters("@orderID").SourceColumn = "orderID"
updateCmd.Parameters("@orderID").SourceVersion = DataRowVersion.Original
updateCmd.Parameters.Add("@newCustID", SqlDbType.NChar, 5)
updateCmd.Parameters("@newCustID").SourceColumn = "customerID"
updateCmd.Parameters("@newCustID").SourceVersion = DataRowVersion.Current
updateCmd.Parameters.Add("@newEmpID", SqlDbType.Int)
updateCmd.Parameters("@newEmpID").SourceColumn = "employeeID"
updateCmd.Parameters("@newEmpID").SourceVersion = DataRowVersion.Current
updateCmd.Parameters.Add("@newOrdDate", SqlDbType.DateTime)
updateCmd.Parameters("@newOrdDate").SourceColumn = "orderdate"
updateCmd.Parameters("@newOrdDate").SourceVersion = DataRowVersion.Current
updateCmd.Parameters.Add("@newReDate", SqlDbType.DateTime)
updateCmd.Parameters("@newReDate").SourceColumn = "requireddate"
updateCmd.Parameters("@newReDate").SourceVersion = DataRowVersion.Current da.UpdateCommand = updateCmd da.Update(ds, "cust")
ds.AcceptChanges()
'ds.Clear()
看看这个
http://download.csdn.net/user/xq1101
http://blog.csdn.net/21aspnet/archive/2007/03/25/1540301.aspx