谢谢楼上两位这么快就给了回复,我这几天才接触C#和SQL,怕问题都说不清楚我用datagrid显示一个数据库,有N列,希望可以在datagrid里直接修改.可是update和delete的commandtext不会写,只知道UPDATE Equipments
SET ManageID = @ManageID, AssetID = @AssetID, Name = @Name, Model = @Model, 
      Price = @Price, AgeLimit = @AgeLimit, Usedate = Usedate, 
      Manufacturer = @Manufacturer, NowPlace = @NowPlace
WHERE后面该接什么我就不知道了.还有,怎么让已经显示好的datagrid刷新啊?

解决方案 »

  1.   

    where 满足的什么条件当然是datagrid中修改了哪就对就数据库中修改到哪.
      

  2.   

    更新也不一定要写SQL UPDATA语句的。你可以使用SqlDataAdapter.Update()把更改更新到数据库中具体流程是这样:
    把datagrid的更改反映到dataset中,然后使用SqlDataAdapter.Update(),这样无论你是修改、删除、插入数据,都会自动完成。唉,看有没有人理你??
      

  3.   

    我的做法是:先从datagrid继承一个子控件。
    在放在label上做成一个DGContainer。
    派生出各种类型的container。里面集成各种功能。关于数据库访问的部分,
    我给datagrid做了一个接口来确定从哪里读数据,封装了数据库访问的细节。
    这样使用就很方便了。我的整个体系挺复杂的,设计得也不好。
    具体如何写要你自己来了。
    自己看演练文档或者上网找代码。
    (有一个很多网站忘了什么名字有大量datagrid的使用源代码)。
      

  4.   

    刷新的话只要重新再select一遍就行。
      

  5.   

    用DataAdapter可以自动的生成Update语句和Delete语句,只要你Table有主键的话。
      

  6.   

    以下示例使用派生类 OleDbDataAdapter 来对数据源进行 Update。此示例假定您已经创建了一个 OleDbDataAdapter 和一个 DataSet。
    [Visual Basic, C#, C++] 注意   此示例显示如何使用 Update 的一个重载版本。有关其他可用示例,请参阅单独的重载主题。
    [Visual Basic] 
    Public Function CreateCmdsAndUpdate(myDataSet As DataSet, myConnection As String, mySelectQuery As String, myTableName As String) As DataSet
        Dim myConn As New OleDbConnection(myConnection)
        Dim myDataAdapter As New OleDbDataAdapter()
        myDataAdapter.SelectCommand = New OleDbCommand(mySelectQuery, myConn)
        Dim custCB As OleDbCommandBuilder = New OleDbCommandBuilder(MyDataAdapter)    myConn.Open()    Dim custDS As DataSet = New DataSet
        myDataAdapter.Fill(custDS)    ' Code to modify data in DataSet here     myDataAdapter.Update(custDS, myTableName)    myConn.Close()    Return custDS
    End Function 'SelectOleDbSrvRows
    [C#] 
    public DataSet CreateCmdsAndUpdate(DataSet myDataSet,string myConnection,string mySelectQuery,string myTableName) 
    {
        OleDbConnection myConn = new OleDbConnection(myConnection);
        OleDbDataAdapter myDataAdapter = new OleDbDataAdapter();
        myDataAdapter.SelectCommand = new OleDbCommand(mySelectQuery, myConn);
        OleDbCommandBuilder custCB = new OleDbCommandBuilder(myDataAdapter);    myConn.Open();    DataSet custDS = new DataSet();
        myDataAdapter.Fill(custDS);    //code to modify data in dataset here    myDataAdapter.Update(custDS, myTableName);    myConn.Close();    return custDS;
     }
      

  7.   

    多看看MSDN,里面都有很好的例子。也可以去网上看看哪里有好的开源网站,也有不少精辟的代码,加上书本的理论,会学得比较快!这个开源网站不错的,不过比较慢!
    http://www.codeproject.com/
      

  8.   

    在csdn的NET论坛全文搜索一下,例子太多了
      

  9.   

    你这个可不是C#的问题,最基本的SQL,你也不大熟阿
    要恶补了
      

  10.   

    SqlDataAdapter.ExecuteSql(string sql);
    不知道有没有记错这个东东。
    后面的sql语句就要狂补了。
      

  11.   

    为什么非要用datagrid呢?我一直以来都不喜欢这个控件啊!我都用一个第三方的控件FarPoint Spread 这个控件,你只要会写SQL语句的查询,存储,修改,删除就可以了啊!都用SQL语句来写就可以了,比datagrid好多了。不过它是英文版的,where后面跟的是条件啊!就是你的SQL语句要UPdata的时候,要满足的条件啊!
      

  12.   

    如果你真接拖控件用的话 Update 等语句都会被生成好 你就不用自己写了 如果你不想拖控件又苦于不会写SQL语句 那用CommandBuilder这个类好了 他可以自己动生成一个已经有SQL语句的DataAdapter