2011-08-13 11 views
1

私はODBC接続を使用してデータセットにデータを保存して編集する特定のテーブルのレコードを表示するためのGridViewを含むASP.Net C#Webアプリケーションを開発していますデータセットに加えられた変更を使用してデータベースにデータを保存します。GridViewのデータをデータベースにどのように保存できますか?

OdbcDataAdapterのfill()メソッドを使用してデータベースにアクセスすると、データが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 !! 

私は、DataSetと呼ばれるMYDSを持っていると私は、次のようなループに直接アクセスすることによってそれにフィールドを編集する場合: -

私は(データバインドを行うとき、私はGridViewコントロールでそれを見ることができるように、データベースで行われ、これらの変更を行う方法
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"; 
} 

} 

)が、データベースが影響を受けないと私はOdbcDataAdapterの充填& updateメソッドを使用して試してみて、 OdbcCommandBuilder ??

これは私が重要なアプリケーションを開発する際に、それを必要とするよう緊急でください...あなたの回答と回答を事前に

おかげで.....

答えて

1

すべてあなたがGridViewコントロールから保存について知っておく必要がありますDataSetとDBの説明はthis articleです。

希望すると便利です。

+0

あなたのリンクは便利ですが、私が望む場合は適用されません。私が追加した2番目のコードをチェックして問題が何かを知ってください。私はあなたの答えを待っており、あなたの助けを前もって感謝します。 – TopDeveloper

+1

実際には、編集された行をデータセットに保存する方法に適用され、最後のコードは、そのデータセットをデータベースに保存する方法を示しています。 – Abbas

+0

これは実際には私が望むケースではありませんが、あなたが送ったリンクは便利です。ご協力いただきありがとうございます。 – TopDeveloper

0

「重要なアプリケーション」の場合は、ストアドプロシージャを使用して、パッケージのデータベースユーザーにEXECUTE権限のみを付与することをお勧めします。ユーザーが完全なDML権限を持っている場合、データがより脆弱になる可能性があります。

は、ここでは、時間があれば、私もMicrosoft Enterprise Library見たいストアドプロシージャ

を呼び出すにbasic tutorialです。

関連する問題