操作SQL数据库时dataGridView与 datatable绑定
adapter.Update(datatable);只能更新有主键的表吗?
对于没有主键的表,大家是如何让dataGridView 与 datatable同步更新的?
adapter.Update(datatable);只能更新有主键的表吗?
对于没有主键的表,大家是如何让dataGridView 与 datatable同步更新的?
调试欢乐多
还可以动态的创建一个GUID列来做为临时列操作数据库
但查询出来后的表可以保证可以设置主键的:
如:
原表:
C1 C2 C3
A AA AB
A BA BB
B AA AB
B BA BB查询C1列只为A的记录C2 C3
AA AB
BA BB则C2列可以保证不存在重复记录,我尝试设置tablename.PrimaryKey 还是不行
string str = "select * from usr_mf"; conn = new SqlConnection("");
SqlCommand com = new SqlCommand(str, conn);
conn.Open();
tablename = new DataTable();
adapter = new SqlDataAdapter(com);
scb = new SqlCommandBuilder(adapter); adapter.Fill(tablename);
DataColumn[] keys = new DataColumn[1];
keys[0] = tablename.Columns[0];
tablename.PrimaryKey = keys;//设置一个主键 dataGridView1.DataSource = tablename;请问还有其他方法吗
string text1 = this.textBox1.Text;
string text2 = this.textBox2.Text;
DateTime text3 = DateTime.Parse(this.textBox3.Text);
string text4 = this.textBox4.Text;
string text5 = this.textBox5.Text;
string text6 = this.textBox6.Text;
try
{
DialogResult result = MessageBox.Show("修改确认!", "您是否确定要修改记录?", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (result == DialogResult.Yes)
{
db.open();
string sql = @"update standard set StandardName='"+text1+"',Published='"+text3+"',nationalstandard='"+text4+"',railwaystandard='"+text5+"',internationalstandard='"+text6+"'where standardid= '"+text2+"'";
int intexec = db.enqsqlcomm(sql);
if (intexec > 0)
MessageBox.Show("更改成功!");
db.close();
}
}
catch (Exception err)
{
MessageBox.Show(err.Message);
}
无意义
如果要使用DATAGRIDVIEW的绑定,并用adapter.Update(datatable) 更新
一定要有主键吗?