代码 如下:这是在 第一个窗体 写的DataGridViewRow dgv = this.dgvQueryResult.SelectedRows[0]; this.dgvQueryResult.SelectionMode = DataGridViewSelectionMode.FullRowSelect; frmUpdata fu = new frmUpdata(dgv); fu.showdialog();第2个窗体 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms;namespace epicking { public partial class frmUpdata : Form { DataGridViewRow dgv = new DataGridViewRow(); public frmUpdata(DataGridViewRow dgvr) { InitializeComponent(); this.dgv = dgvr; } private void frmUpdata_Load(object sender, EventArgs e) { //加载信息
SqlConnection conChange = new SQLConnection();
conChange.Open();
SqlCommand cmd = new SqlCommand(strChange, conChange);
cmd.ExecuteNonQuery();
conChange.Close();
MessageBox.Show("用户更改成功!");
再重新连接数据库,你可以提前把数据库连接写成一个函数
OnRowUpdating="GridView1_RowUpdating" OnRowCancelingEdit="GridView1_RowCancelingEdit" Height="219px" Width="774px" BackColor="White" BorderColor="#CC9966" BorderStyle="None" BorderWidth="1px">
<FooterStyle BackColor="#FFFFCC" ForeColor="#330099" />
<Columns>
<asp:BoundField DataField="lid" HeaderText="频道ID" ReadOnly="True" />
<asp:BoundField DataField="linkName" HeaderText="链接文字" />
<asp:BoundField DataField="linkSrc" HeaderText="链接地址" />
<asp:CommandField HeaderText="编辑" ShowEditButton="True" />
<asp:CommandField HeaderText="删除" ShowDeleteButton="True" DeleteText="<div id="de" onclick="JavaScript:return confirm('确定删除吗?')">删除</div> " />
</Columns>
<RowStyle ForeColor="#330099" BackColor="White" />
<SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="#663399" />
<PagerStyle BackColor="#FFFFCC" ForeColor="#330099" HorizontalAlign="Center" />
<HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="#FFFFCC" />
</asp:GridView>
.CS页面:
//更新
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
string sqlstr = "update ShangHai_link set linkName='" + ((TextBox)(GridView1.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString().Trim() + "',linkSrc='" + ((TextBox)(GridView1.Rows[e.RowIndex].Cells[2].Controls[0])).Text.ToString().Trim() + "' where lid='" + GridView1.DataKeys[e.RowIndex].Value.ToString() + "'";
int i = exec(CommandType.Text, sqlstr, null);
if (i > 0)
{
GridView1.EditIndex = -1;
bind();
}
else {
Page.RegisterStartupScript("","<script>alert('编辑失败!')</script>");
}
}
需要更新到数据库时,使用DataTable.GetChanges就可以获得更改的数据行。绑定的效果,不是凭空可以想象的。
选定dataGridView textbox会跟记录号的不同,值也跟着变化。修改 textbox值。dataGridView也会被修改。但不会修改数据库
如果要修改数据库,需
BindingSource.EndEdit();
TableAdapter.Update(DataSet);
this.dgvQueryResult.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
frmUpdata fu = new frmUpdata(dgv);
fu.showdialog();第2个窗体 using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;namespace epicking
{
public partial class frmUpdata : Form
{
DataGridViewRow dgv = new DataGridViewRow();
public frmUpdata(DataGridViewRow dgvr)
{
InitializeComponent();
this.dgv = dgvr;
} private void frmUpdata_Load(object sender, EventArgs e)
{
//加载信息
catch (Exception ex) {
uoLib.Win.Debugger.Logger.Write(ex.Message);
}
}
}
}
string tilesName = dgv.Cells["瓦片名称"].Value.ToString();