我如何将数据从GridView保存到数据库

本文关键字:GridView 保存 数据库 数据 | 更新日期: 2023-09-27 18:05:43

我正在开发一个ASP。. Net c# Web应用程序,其中包含一个GridView显示某个表的记录从我的数据库,我使用ODBC连接连接到它和一个数据集来保存数据和编辑它,然后我应该保存数据到数据库中使用数据集所做的更改。

我可以使用OdbcDataAdapter的fill()方法成功访问数据库,我可以进行数据绑定,以便在GridView中查看数据。

我的问题是如何将gridview保存到数据集,然后在完成任何更新或更改时保存到数据库[之前完成的操作反之亦然]?

我的示例代码是在一个web表单类中使用的如下:-

 private void SelectFromDatabase()
        { 
            string OdbcConnectionString1     = getConnectionString();
            OdbcConnection OdbcConnection1   = new OdbcConnection(OdbcConnectionString1);
            string OdbcSelectText1 = "SELECT * FROM table";
            OdbcCommand OdbcSelectCommand1   = new OdbcCommand(OdbcSelectText1, OdbcConnection1);
            OdbcDataAdapter OdbcDataAdapter1 = new OdbcDataAdapter();
            try
            { 
                OdbcConnection1.Open();                
                OdbcDataAdapter1.SelectCommand           = OdbcSelectCommand1;
                OdbcDataAdapter1.AcceptChangesDuringFill = true;
                int FillResult                           = OdbcDataAdapter1.Fill(myDataSet, TableName);
                myDataSet.AcceptChanges();
                fillGridViewbyDataset(myGridView, myDataSet, TableName);
                Response.Write("<br/>SelectFromDatabase() Fill Result: " + FillResult);
            } 
            catch (Exception Exception1)
            { 
                Response.Write("<br/> SelectFromDatabase() Exception: " + Exception1.Message);
            } 
            finally
            { 
                OdbcConnection1.Close();
            } 
        } 
private void fillGridViewbyDataset(GridView gv, DataSet ds, string dt)
{ 
    gv.DataSource = ds;
    gv.DataMember = dt;
    gv.DataBind();
}
what I need is something like:-
how to save Gridview to the DataSet then save the DataSet to the database as i got the gridview updates but the database still without any updates !!

如果我有一个名为myDs的数据集,并且我在循环中通过直接访问编辑其中的字段,如以下所示:-

for (int i = 0; i < myDS.Tables[TableName].Rows.Count; i++)
{
//some function or web method to get the id value of the record being updated
int n = getNewNumber();
//updating the dataset record according to some condition
if (n == 0)
{
myDS.Tables[TableName].Rows[i]["id"] = n;
myDS.Tables[TableName].Rows[i]["description"] = "some data";
}
else
{
myDS.Tables[TableName].Rows[i]["id"] = n;
myDS.Tables[TableName].Rows[i]["description"] = "new data";
}
}

我如何使这些变化在数据库中完成,因为我可以看到它在GridView当我做databind(),但数据库不受影响,我尝试使用填充&OdbcDataAdapter和OdbcCommandBuilder的更新方法??

这是紧急的,因为我需要它来开发一个重要的应用程序。

提前感谢您的回复和解答.....

我如何将数据从GridView保存到数据库

您需要知道的关于从GridView保存到DataSet和DB的所有内容都在本文中进行了解释。

希望这对你有帮助!

如果它是"一个重要的应用程序",我建议使用存储过程,并只向包上的数据库用户授予EXECUTE权限。如果用户拥有完整的DML权限,那么您的数据可能更容易受到攻击。

下面是关于调用存储过程的基本教程

如果你有时间,我还想看看微软企业库。