Как я могу сохранить данные из GridView в базу данных? - PullRequest
1 голос
/ 13 августа 2011

Я занимаюсь разработкой веб-приложения ASP.Net C #, которое содержит GridView для отображения записей определенной таблицы из моей базы данных, которую я использую ODBC Connection для подключения к ней, и DataSet для сохранения в ней данных и их редактирования. следует сохранить данные в базе данных, используя изменения, внесенные в DataSet.

Я мог получить доступ к базе данных успешно, используя метод fill () в OdbcDataAdapter, и я мог выполнить привязку данных, чтобы данные просматривались в GridView.

Мой вопрос заключается в том, как сохранить вид сетки в наборе данных, а затем в базу данных, когда будут произведены какие-либо обновления или изменения [наоборот, операции, выполненные ранее]?

Мой пример кода, который используется внутри класса веб-формы, выглядит следующим образом: -

 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 !!

если у меня есть DataSet с именем 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 ??

Пожалуйста, это срочно, так как мне это нужно для разработки важного приложения.

Заранее спасибо за ваши ответы и ответы .....

Ответы [ 2 ]

1 голос
/ 13 августа 2011

Все, что вам нужно знать о сохранении из GridView в DataSet и в БД, объяснено: эта статья .

Надеюсь, это поможет!

0 голосов
/ 14 августа 2011

Если это «важное приложение», я бы рекомендовал использовать хранимые процедуры и предоставлять только привилегию EXECUTE пользователю базы данных в пакете. Если пользователь имеет полные права DML, ваши данные могут быть более уязвимы.

Вот базовое руководство по вызову хранимых процедур

Если у вас есть время, я бы также посмотрел на Microsoft Enterprise Library .

...