关于datagrid更新的问题! 我想在winform中的datagrid中更新我刚修改过的东西,怎么更新?比如,在一个winform中的datagrid显示数据库中的内容,但是我现在想修改一些内容,更新呢?谢谢!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 数据库aa中表 people:People.sqlif exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[People]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)drop table [dbo].[People]GOCREATE TABLE [dbo].[People] ( [pkID] [int] IDENTITY (1, 1) NOT NULL , [FirstName] [char] (100) COLLATE Chinese_PRC_CI_AS NULL , [LastName] [char] (100) COLLATE Chinese_PRC_CI_AS NULL ) ON [PRIMARY]GOEditDataGridCS.aspx<%@ Page Language="c#" debug="true"%><%@ Import Namespace="System.Data"%><%@ Import Namespace="System.Data.SqlClient" %><script runat="server">//make first sql String sql = "";String strCnn = "Data Source=.;Initial Catalog=aa;User Id=sa;Password=;";//create a datasource functionpublic ICollection CreateDataSource () {SqlConnection conn = new SqlConnection(strCnn);SqlDataAdapter db_sqladaptor = new SqlDataAdapter(sql,conn);DataSet ds = new DataSet();db_sqladaptor.Fill(ds,"MyDataResult");DataView myView = ds.Tables["MyDataResult"].DefaultView;return myView;}//do page loadpublic void Page_Load(Object sender, EventArgs e) {strCnn = "Data Source=.;Initial Catalog=aa;User Id=sa;Password=;";if (!IsPostBack) {sql = "Select * FROM People"; People.DataSource = CreateDataSource();People.DataBind();}} public void Page_Grid(Object sender, DataGridPageChangedEventArgs e) {sql = "Select * FROM People"; // Set CurrentPageIndex to the page the user clicked.People.CurrentPageIndex = e.NewPageIndex;// Rebind the data. People.DataSource = CreateDataSource();People.DataBind();}public void People_Edit(Object sender, DataGridCommandEventArgs e) {sql = "Select * FROM People"; People.EditItemIndex = e.Item.ItemIndex;People.DataSource = CreateDataSource();People.DataBind();}public void People_Cancel(Object sender, DataGridCommandEventArgs e) {sql = "Select * FROM People"; People.EditItemIndex = -1;People.DataSource = CreateDataSource();People.DataBind();}public void People_Update(Object sender, DataGridCommandEventArgs e) {string FirstName = ((TextBox)e.Item.Cells[1].Controls[1]).Text;string LastName = ((TextBox)e.Item.Cells[2].Controls[1]).Text;SqlConnection connUpdate = new SqlConnection(strCnn);connUpdate.Open();String sql_edit = "UPDATE People " +"SET FirstName = '" + FirstName.Replace("'","''")+ "'," +"LastName = '" + LastName.Replace("'","''")+ "'" +" WHERE pkID = " + e.Item.Cells[0].Text;SqlCommand sqlCommandUpdate = new SqlCommand(sql_edit,connUpdate);sqlCommandUpdate.ExecuteNonQuery();connUpdate.Close();sql = "Select * FROM People";People.EditItemIndex = -1;People.DataSource = CreateDataSource();People.DataBind();}public void People_Delete(Object sender, DataGridCommandEventArgs e) {SqlConnection connDel = new SqlConnection(strCnn);connDel.Open();String sql_Del = "DELETE FROM People " +" WHERE pkID = " + e.Item.Cells[0].Text;SqlCommand sqlCommandDel = new SqlCommand(sql_Del,connDel);sqlCommandDel.ExecuteNonQuery();connDel.Close();sql = "Select * FROM People";People.EditItemIndex = -1;People.DataSource = CreateDataSource();People.DataBind();}</script><font face="arial" size="3"><b>Edit People</b></font><br><form runat="server"><asp:DataGrid id="People" runat="server"BorderColor="green" Width="640" PageSize="5" AllowPaging="true" OnPageIndexChanged="Page_Grid" BorderWidth="1"CellPadding="3"AutoGenerateColumns="false"ShowHeader="true" Visible="true" OnEditCommand="People_Edit" OnCancelCommand="People_Cancel" OnUpdateCommand="People_Update" OnDeleteCommand="People_Delete"><HeaderStyle BorderColor="White" BackColor="black" ForeColor="White" Font-Bold="True" Font-Name="Arial" Font-Size="9" HorizontalAlign="Center"/><ItemStyle BorderColor="" BackColor="#FFFFF0" ForeColor="Black" Font-Name="Arial" Font-Size="8" Font-Bold="False" HorizontalAlign="Center"/><EditItemStyle BorderColor="" BackColor="#FFFFF0" ForeColor="Black" Font-Name="Arial" Font-Size="7" Font-Bold="False" HorizontalAlign="Center"/><PagerStyle Mode="NumericPages" Font-Size="8"/><Columns><asp:BoundColumn HeaderText="ID" ReadOnly="true" DataField="pkID"/><asp:TemplateColumn><HeaderTemplate><b> First Name </b></HeaderTemplate><ItemTemplate><asp:LabelText='<%# DataBinder.Eval(Container.DataItem, "FirstName").ToString().Trim() %>'runat="server"/></ItemTemplate><EditItemTemplate><asp:TextBox id="FirstName" Text='<%# DataBinder.Eval(Container.DataItem, "FirstName").ToString().Trim() %>' runat="server" Width="100%"/></EditItemTemplate></asp:TemplateColumn><asp:TemplateColumn><HeaderTemplate><b> Last Name </b></HeaderTemplate><ItemTemplate><asp:Label Width="200" Text='<%# DataBinder.Eval(Container.DataItem, "LastName").ToString().Trim() %>' runat="server"/></ItemTemplate><EditItemTemplate><asp:TextBox id="LastName" Text='<br><%# DataBinder.Eval(Container.DataItem, "LastName").ToString().Trim() %>' runat="server" Width="100%"/></EditItemTemplate></asp:TemplateColumn><asp:EditCommandColumnButtonType="LinkButton"CancelText="Cancel"EditText="Edit"UpdateText="Update" /><asp:ButtonColumn Text= "Delete" CommandName="Delete"></asp:ButtonColumn> </Columns></asp:DataGrid></form> 能不能给我一个WINFORM的例子??谢了! 试试这个http://dev.csdn.net/develop/article/24/24148.shtm private SqlConnection conn;private SqlDataAdapter dataAdapter;private DataSet saveData;//装载数据conn = new SqlConnection("user id=sa;data source=localhost;persist security info=true;initial catalog=Northwind;password=sa");this.saveData = new DataSet();string sql = "select top 10 CustomerID, CompanyName from Customers";this.dataAdapter = new SqlDataAdapter(sql, conn);this.dataAdapter.Fill(this.saveData);this.dataGrid1.SetDataBinding(this.saveData, this.saveData.Tables[0].TableName);conn.Close();//修改数据................//保存数据string sql = "update customers set companyname = @companyname where customerid = @customerid";SqlCommand cmd = new SqlCommand(sql, this.conn);SqlParameter parm = cmd.Parameters.Add("@customerid", SqlDbType.NChar, 10, "customerid");parm.SourceVersion = DataRowVersion.Original;cmd.Parameters.Add("@companyname", SqlDbType.NVarChar, 80, "companyname");this.dataAdapter.UpdateCommand = cmd;this.dataAdapter.Update(this.saveData);MessageBox.Show("OK!"); 我意思是在显示的数据中,我修改后,怎样的更新数据:da.Update(ds.GetChanges(),comboBox4.SelectedItem.ToString());怎样的获取我的ds.GetChanges()的dataset??? 重新查迅数据再绑定datagird 要想重新显示,只需要两个步骤:首选调用Clear方法,然后再Fill。 楼上地贴了那么多,是Web的吧!晕!更新数据库后,在作一次邦定不就可以了可以通过这样:DataTable dt = new DataTable();dt = (DataTable)DataGrid.DataSource然后把dt加到DataSet中,就可以了! 这样的问题不要拿出来问了,用DataAdapter来更新!建议你买一本关于ADO.NET的书来看一看 各位老大,你们怎么不看看我提的问题啊?我是说,在datagrid中修改数据,然后怎样保存这些修改的数据!!! 正则表达式 有关活动目录的问题 定时锁定软件! gdi+ 简单绘图问题 当前上下文中不存在名称“FileUpload1” 怎么得到窗口在屏幕上的位置 多线程定时执行任务,急!!! 在向一个数组中添加10项,要删除第二项这么实现??????? 并发冲突的问题 请教一个傻傻的小问题。谢谢。 通过UdpClient来监听本地的一个端口,通过什么方式来获取数据发送方的IP地址和端口呢? @@@@@@@@@@@@@@ 怎样 韩文 转换 中文 啊! @@@@@@@@@@@@@@ 帮忙UP一下啊!
id = object_id(N'[dbo].[People]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[People]
GOCREATE TABLE [dbo].[People] (
[pkID] [int] IDENTITY (1, 1) NOT NULL ,
[FirstName] [char] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[LastName] [char] (100) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GOEditDataGridCS.aspx<%@ Page Language="c#" debug="true"%>
<%@ Import Namespace="System.Data"%>
<%@ Import Namespace="System.Data.SqlClient" %><script runat="server">//make first sql
String sql = "";
String strCnn = "Data Source=.;Initial Catalog=aa;User Id=sa;Password=;";
//create a datasource function
public ICollection CreateDataSource () {
SqlConnection conn = new SqlConnection(strCnn);SqlDataAdapter db_sqladaptor = new SqlDataAdapter(sql,conn);DataSet ds = new DataSet();
db_sqladaptor.Fill(ds,"MyDataResult");DataView myView = ds.Tables["MyDataResult"].DefaultView;
return myView;
}
//do page loadpublic void Page_Load(Object sender, EventArgs e) {
strCnn = "Data Source=.;Initial Catalog=aa;User Id=sa;Password=;";if (!IsPostBack)
{
sql = "Select * FROM People";
People.DataSource = CreateDataSource();
People.DataBind();
}} public void Page_Grid(Object sender, DataGridPageChangedEventArgs e)
{
sql = "Select * FROM People";
// Set CurrentPageIndex to the page the user clicked.
People.CurrentPageIndex = e.NewPageIndex;// Rebind the data.
People.DataSource = CreateDataSource();
People.DataBind();}public void People_Edit(Object sender, DataGridCommandEventArgs e)
{
sql = "Select * FROM People"; People.EditItemIndex = e.Item.ItemIndex;
People.DataSource = CreateDataSource();
People.DataBind();}public void People_Cancel(Object sender, DataGridCommandEventArgs e)
{
sql = "Select * FROM People";
People.EditItemIndex = -1;
People.DataSource = CreateDataSource();
People.DataBind();}public void People_Update(Object sender, DataGridCommandEventArgs e)
{
string FirstName = ((TextBox)e.Item.Cells[1].Controls[1]).Text;
string LastName = ((TextBox)e.Item.Cells[2].Controls[1]).Text;SqlConnection connUpdate = new SqlConnection(strCnn);
connUpdate.Open();
String sql_edit = "UPDATE People " +
"SET FirstName = '" + FirstName.Replace("'","''")+ "'," +
"LastName = '" + LastName.Replace("'","''")+ "'" +
" WHERE pkID = " + e.Item.Cells[0].Text;SqlCommand sqlCommandUpdate = new SqlCommand(sql_edit,connUpdate);
sqlCommandUpdate.ExecuteNonQuery();
connUpdate.Close();sql = "Select * FROM People";
People.EditItemIndex = -1;
People.DataSource = CreateDataSource();
People.DataBind();}public void People_Delete(Object sender, DataGridCommandEventArgs e) {SqlConnection connDel = new SqlConnection(strCnn);
connDel.Open();
String sql_Del = "DELETE FROM People " +
" WHERE pkID = " + e.Item.Cells[0].Text;SqlCommand sqlCommandDel = new SqlCommand(sql_Del,connDel);
sqlCommandDel.ExecuteNonQuery();
connDel.Close();sql = "Select * FROM People";
People.EditItemIndex = -1;
People.DataSource = CreateDataSource();
People.DataBind();}</script><font face="arial" size="3">
<b>Edit People</b>
</font>
<br><form runat="server"><asp:DataGrid id="People" runat="server"
BorderColor="green"
Width="640"
PageSize="5"
AllowPaging="true"
OnPageIndexChanged="Page_Grid"
BorderWidth="1"
CellPadding="3"
AutoGenerateColumns="false"
ShowHeader="true"
Visible="true" OnEditCommand="People_Edit"
OnCancelCommand="People_Cancel"
OnUpdateCommand="People_Update"
OnDeleteCommand="People_Delete"><HeaderStyle BorderColor="White" BackColor="black"
ForeColor="White"
Font-Bold="True"
Font-Name="Arial"
Font-Size="9" HorizontalAlign="Center"/><ItemStyle BorderColor=""
BackColor="#FFFFF0"
ForeColor="Black"
Font-Name="Arial"
Font-Size="8"
Font-Bold="False" HorizontalAlign="Center"/><EditItemStyle BorderColor=""
BackColor="#FFFFF0"
ForeColor="Black"
Font-Name="Arial"
Font-Size="7"
Font-Bold="False" HorizontalAlign="Center"/><PagerStyle Mode="NumericPages" Font-Size="8"/><Columns><asp:BoundColumn HeaderText="ID" ReadOnly="true" DataField="pkID"/><asp:TemplateColumn><HeaderTemplate>
<b> First Name </b>
</HeaderTemplate><ItemTemplate>
<asp:Label
Text='<%# DataBinder.Eval(Container.DataItem, "FirstName").ToString().Trim() %>'
runat="server"/>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox id="FirstName" Text='
<%# DataBinder.Eval(Container.DataItem, "FirstName").ToString().Trim() %>'
runat="server" Width="100%"/>
</EditItemTemplate></asp:TemplateColumn><asp:TemplateColumn><HeaderTemplate>
<b> Last Name </b>
</HeaderTemplate><ItemTemplate>
<asp:Label
Width="200"
Text='<%# DataBinder.Eval(Container.DataItem, "LastName").ToString().Trim() %>'
runat="server"/>
</ItemTemplate><EditItemTemplate>
<asp:TextBox id="LastName" Text='<br>
<%# DataBinder.Eval(Container.DataItem, "LastName").ToString().Trim() %>'
runat="server" Width="100%"/>
</EditItemTemplate></asp:TemplateColumn><asp:EditCommandColumn
ButtonType="LinkButton"
CancelText="Cancel"
EditText="Edit"
UpdateText="Update" /><asp:ButtonColumn Text= "Delete" CommandName="Delete"></asp:ButtonColumn> </Columns></asp:DataGrid></form>
http://dev.csdn.net/develop/article/24/24148.shtm
private SqlConnection conn;
private SqlDataAdapter dataAdapter;
private DataSet saveData;
//装载数据
conn = new SqlConnection("user id=sa;data source=localhost;persist security info=true;initial catalog=Northwind;password=sa");
this.saveData = new DataSet();
string sql = "select top 10 CustomerID, CompanyName from Customers";
this.dataAdapter = new SqlDataAdapter(sql, conn);
this.dataAdapter.Fill(this.saveData);this.dataGrid1.SetDataBinding(this.saveData, this.saveData.Tables[0].TableName);
conn.Close();
//修改数据..........
......
//保存数据
string sql = "update customers set companyname = @companyname where customerid = @customerid";
SqlCommand cmd = new SqlCommand(sql, this.conn);
SqlParameter parm = cmd.Parameters.Add("@customerid", SqlDbType.NChar, 10, "customerid");
parm.SourceVersion = DataRowVersion.Original;
cmd.Parameters.Add("@companyname", SqlDbType.NVarChar, 80, "companyname");
this.dataAdapter.UpdateCommand = cmd;
this.dataAdapter.Update(this.saveData);
MessageBox.Show("OK!");
怎样的更新数据:da.Update(ds.GetChanges(),comboBox4.SelectedItem.ToString());
怎样的获取我的ds.GetChanges()的dataset???
再绑定datagird
首选调用Clear方法,然后再Fill。
更新数据库后,在作一次邦定不就可以了可以通过这样:
DataTable dt = new DataTable();
dt = (DataTable)DataGrid.DataSource然后把dt加到DataSet中,就可以了!
我是说,在datagrid中修改数据,然后怎样保存这些修改的数据!!!