3天了,继续问,
C/S模式中,datagridview绑定了数据库中的数据表,我想实现的功能是客户可以编辑datagridview,然后点击更新按妞后,datagridview跟数据表都更新,
麻烦各位写个源代码,成功之后立马给分,连同前面的4个帖子共300分送上! 1星的保证到3星!
数据表名为jsgx,结构为
工序编号(varchar) 工序名称(varchar) 工序价格(int)
下面的是连接字符串
string source = "pcdb.mdb";
string conn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + source;
自己试了N种方法都不行!!
C/S模式中,datagridview绑定了数据库中的数据表,我想实现的功能是客户可以编辑datagridview,然后点击更新按妞后,datagridview跟数据表都更新,
麻烦各位写个源代码,成功之后立马给分,连同前面的4个帖子共300分送上! 1星的保证到3星!
数据表名为jsgx,结构为
工序编号(varchar) 工序名称(varchar) 工序价格(int)
下面的是连接字符串
string source = "pcdb.mdb";
string conn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + source;
自己试了N种方法都不行!!
SqlDataAdapter da=new SqlDataAdapter("select * from product",strcon);
SqlCommandBuilder cb=new SqlCommandBuilder(da);
DataSet ds = new DataSet();
da.Fill(ds);
dataGridView1.DataSource=ds.Tables[0]; //保存
da.Update(ds);
在线等,工作看没了,大家帮帮忙啊!
DataAdapter.Fill(DataSet);更新回去用:
DataAdapter.Update(DataSet);
DataAdapter.Update(DataTable);
OledbCommandBuilder也设置了,就是不行!
OledbCommandBuilder也设置了,就是不行!
四楼的两个问题我都代码里都有,
主键也换了两个还是不行,草他吗!
{
try
{
string source = "pcdb.mdb";
string conn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + source;
OleDbConnection olecon = new OleDbConnection(conn);
OleDbDataAdapter da = new OleDbDataAdapter("select * from jsgx", olecon);
DataSet ds = new DataSet();
da.Fill(ds);
OleDbCommandBuilder cb = new OleDbCommandBuilder(da);
//保存
da.Update(ds);
MessageBox.Show("更新成功!");
}
catch(System.Exception ex)
{
MessageBox.Show(ex.ToString());
return;
}
现在的问题是前台更新了,数据库好像没变,郁闷!!
public partial class Form1 : Form
{
Form1数据成员#region Form1数据成员
private DataTable DT = new DataTable();
private SqlDataAdapter SDA = new SqlDataAdapter();
#endregionForm1构造函数#region Form1构造函数
public Form1()
{
InitializeComponent();
}
#endregion连接数据库显示数据#region 连接数据库显示数据
private void Form1_Load(object sender, EventArgs e)
{ SqlConnection conn = new SqlConnection("server=127.0.0.1;database=pubs;uid=sa");
SqlCommand SCD = new SqlCommand("select * from tables", conn);
SDA.SelectCommand = SCD;
SDA.Fill(DT);
dataGridView1.DataSource = DT;
}
#endregion使用Update更新数据库#region 使用Update更新数据库
private void toolStripButton1_Click(object sender, EventArgs e)
{
try
{
SqlCommandBuilder SCB = new SqlCommandBuilder(SDA);
SDA.Update(DT);
}
catch (System.Exception ex)
{
MessageBox.Show(ex.ToString());
return;
}
MessageBox.Show("更新成功!");
}
#endregion
你起码得把,从数据库取数据和UPDATE新数据这两个部分分开来写,而不是写在一个按钮事件中,起码也得这样:
public SqlConnection cn;
public SqlCommand cm;
public DataSet ds;
SqlDataAdapter da;
private void button1_Click(object sender, EventArgs e)
{
cn = new SqlConnection(@"Data Source=FEXINS-PC\SQLEXPRESS;Initial Catalog=fexinsTest;Integrated Security=True;Pooling=False");
ds = new DataSet();
cm = new SqlCommand ("select * from fexinstest",cn);
da = new SqlDataAdapter(cm);
da.Fill(ds);
SqlCommandBuilder sb = new SqlCommandBuilder(da);
this.dataGridView1.DataSource = ds.Tables[0];
//ds.Tables[0].PrimaryKey = new DataColumn[] { ds.Tables[0].Columns["index"] };
}
private void button2_Click(object sender, EventArgs e)
{
da.Update(ds);
}