我想在winform中的datagrid中更新我刚修改过的东西,怎么更新?
比如,在一个winform中的datagrid显示数据库中的内容,但是我现在想修改一些内容,更新呢?
谢谢!!!

解决方案 »

  1.   

    数据库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 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>
      

  2.   

    能不能给我一个WINFORM的例子??谢了!
      

  3.   

    试试这个
    http://dev.csdn.net/develop/article/24/24148.shtm
      

  4.   


    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!");
      

  5.   

    我意思是在显示的数据中,我修改后,
    怎样的更新数据:da.Update(ds.GetChanges(),comboBox4.SelectedItem.ToString());
    怎样的获取我的ds.GetChanges()的dataset???
      

  6.   

    重新查迅数据
    再绑定datagird
      

  7.   

    要想重新显示,只需要两个步骤:
    首选调用Clear方法,然后再Fill。
      

  8.   

    楼上地贴了那么多,是Web的吧!晕!
    更新数据库后,在作一次邦定不就可以了可以通过这样:
    DataTable dt = new DataTable();
    dt = (DataTable)DataGrid.DataSource然后把dt加到DataSet中,就可以了!
      

  9.   

    这样的问题不要拿出来问了,用DataAdapter来更新!建议你买一本关于ADO.NET的书来看一看
      

  10.   

    各位老大,你们怎么不看看我提的问题啊?
    我是说,在datagrid中修改数据,然后怎样保存这些修改的数据!!!