数据库中有一张用户表
表结构如下:
1。新建一张用户表
create table users
(
userid int not null identity(1,1),
userName varchar(20)not null,
userPwd varchar(20) not null,
memo nvarchar(500),
primary key (userid)
)2.向表中插入用户资料
insert into users (username,userpwd)
select 'admin','123'
union
select 'adm','456'3.
我主要是想通过datagridview,对users表中的数据作新增,修改,删除操作,
首先我在界面上放置一个datagridview控件,三个button按钮,分别为,修改按钮,保存按钮,取消按钮,当我点击修改按钮之后,datagridview控件变为可编辑状态,可以对其作新增,修改,删除操作,当我点击保存按钮之后,会将我作的修改更新到数据库,我现在不知道保存按钮下面应该写点什么。
下面是我写的一些c#代码,大家帮忙看看. SqlConnection conn = new SqlConnection("server=(local);database=myTest;user id=sa;pwd=");
SqlDataAdapter da;
DataSet ds = new DataSet(); public Form2()
{
InitializeComponent();
} private void Form2_Load(object sender, EventArgs e)
{
EnableButton(true);
dataGridView1.DataSource = GetUsers().Tables[0].DefaultView;
dataGridView1.AutoGenerateColumns = false;
//SqlDataAdapter da = new SqlDataAdapter("select * from users",conn);
}
private DataSet GetUsers()
{
da = new SqlDataAdapter("select username,userpwd from users", conn);
SqlCommandBuilder sqlcomb = new SqlCommandBuilder(da);
try
{
da.Fill(ds, "Users");
}
catch (SqlException ex)
{ }
finally
{
conn.Close();
}
return ds; }
private void EnableButton(bool venable)
{
//button1.Enabled = venable;
cmdEdit.Enabled = venable;
//button3.Enabled = venable;
cmdSave.Enabled = !venable;
cmdCancle.Enabled = !venable;
//button3.Enabled = venable;
dataGridView1.ReadOnly = venable;
dataGridView1.AllowUserToAddRows = !venable;
dataGridView1.AllowUserToDeleteRows = !venable;
} private void cmdSave_Click(object sender, EventArgs e)
{
//ds.Tables[0].i
//DataColumn [] dc=new DataColumn[1];
//dc[0] = ds.Tables["Users"].Columns[0];
//ds.Tables["Users"].PrimaryKey = dc;
da.Update(ds, "Users");
ds.Tables["Users"].AcceptChanges();
EnableButton(true);
//da.InsertCommand.CommandText;
} private void cmdEdit_Click(object sender, EventArgs e)
{
EnableButton(false);
} }
表结构如下:
1。新建一张用户表
create table users
(
userid int not null identity(1,1),
userName varchar(20)not null,
userPwd varchar(20) not null,
memo nvarchar(500),
primary key (userid)
)2.向表中插入用户资料
insert into users (username,userpwd)
select 'admin','123'
union
select 'adm','456'3.
我主要是想通过datagridview,对users表中的数据作新增,修改,删除操作,
首先我在界面上放置一个datagridview控件,三个button按钮,分别为,修改按钮,保存按钮,取消按钮,当我点击修改按钮之后,datagridview控件变为可编辑状态,可以对其作新增,修改,删除操作,当我点击保存按钮之后,会将我作的修改更新到数据库,我现在不知道保存按钮下面应该写点什么。
下面是我写的一些c#代码,大家帮忙看看. SqlConnection conn = new SqlConnection("server=(local);database=myTest;user id=sa;pwd=");
SqlDataAdapter da;
DataSet ds = new DataSet(); public Form2()
{
InitializeComponent();
} private void Form2_Load(object sender, EventArgs e)
{
EnableButton(true);
dataGridView1.DataSource = GetUsers().Tables[0].DefaultView;
dataGridView1.AutoGenerateColumns = false;
//SqlDataAdapter da = new SqlDataAdapter("select * from users",conn);
}
private DataSet GetUsers()
{
da = new SqlDataAdapter("select username,userpwd from users", conn);
SqlCommandBuilder sqlcomb = new SqlCommandBuilder(da);
try
{
da.Fill(ds, "Users");
}
catch (SqlException ex)
{ }
finally
{
conn.Close();
}
return ds; }
private void EnableButton(bool venable)
{
//button1.Enabled = venable;
cmdEdit.Enabled = venable;
//button3.Enabled = venable;
cmdSave.Enabled = !venable;
cmdCancle.Enabled = !venable;
//button3.Enabled = venable;
dataGridView1.ReadOnly = venable;
dataGridView1.AllowUserToAddRows = !venable;
dataGridView1.AllowUserToDeleteRows = !venable;
} private void cmdSave_Click(object sender, EventArgs e)
{
//ds.Tables[0].i
//DataColumn [] dc=new DataColumn[1];
//dc[0] = ds.Tables["Users"].Columns[0];
//ds.Tables["Users"].PrimaryKey = dc;
da.Update(ds, "Users");
ds.Tables["Users"].AcceptChanges();
EnableButton(true);
//da.InsertCommand.CommandText;
} private void cmdEdit_Click(object sender, EventArgs e)
{
EnableButton(false);
} }
坐SF先,再具体回答
dataGridView1.DataSource = GetUsers().Tables[0].DefaultView; 这句改成
ds = GetUsers();
dataGridView1.DataSource = ds.Tables[0].DefaultView;保存按钮:private void Save()
{
DataSet dsTmp = new DataSet();
if(ds.Table[0].GetChange() != null)
{
dsTmp.Add(ds.Table[0].GetChange());
da = new SqlDataAdapter();
da.Update(ds);
this.ds.Table[0].AceptChange();
}
}
隐约就记得这么打了,难免有错
了可编辑状态,不仅仅可以对其作修改操作,还可以作新增,删除操作,当一切操作完成之后,点击保存按钮,实现对数据库的更新,其实我想问题的关键在于保存按钮下的那段代码
这样应该实现不了吧,怎么去判断有没有进行这些操作,只有单个更新还有可能实现。但单个更新又怎么去识别它的操作呢?那只有用datagridview的索引了。
不过我建议数据绑定情况下不直接对datagridview进行这些操作。
"你是说对datagridview中的数据也进行增删改操作,并且有可能还是批量操作(即点一次修改后,有修改,又新增,有删除等操作,然后再保存)?"
对,就是这样的。爲什麽我要這么去操作呢,是因為我現在正在寫一個采購模塊,一張采購單,一般情況下會有幾種產品要去采購,所以說,我把采購單拆分成頭表和字表,頭表中包括采購單號,采購人,供貨商,采購日期,等等,而子表中包含有物品編號,物品名稱,物品采購數量,物品的單價,等等
所以我要在一個窗體里實現采購單的增刪改功能,幾乎就會用到datagridview來存放采購子表中的內容,不知道這樣講你能否理解我的意思,呵