2011-08-13 4 views
1

ODBC 연결을 사용하여 데이터베이스에 연결하고 DataSet을 사용하여 특정 테이블의 레코드를 표시하는 GridView가 포함 된 ASP.Net C# 웹 응용 프로그램을 개발 중이며 편집해야합니다. DataSet에서 변경 한 내용을 사용하여 데이터베이스에 데이터를 저장하십시오.어떻게 GridView에서 데이터베이스로 데이터를 저장할 수 있습니까?

OdbcDataAdapter의 fill() 메서드를 사용하여 데이터베이스에 성공적으로 액세스 할 수 있었고 데이터를 GridView에서 볼 수 있도록 데이터 바인딩을 수행 할 수있었습니다.

제 질문은 데이터 세트에 대한 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 !! 

나는 데이터 집합이라고 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의 채우기 & 업데이트 방법을 사용하여 시도 OdbcCommandBuilder ??

이 나는 ​​중요한 응용 프로그램을 개발하여 필요에 따라 긴급하시기 바랍니다 .. 귀하의 답변과 답변에 미리

감사합니다 .....

답변

1

모든 당신이의 GridView에서 저장에 대해 알아야 할 DataSet 및 DB에 대한 설명은 this article입니다.

희망이 도움이됩니다.

+0

링크가 유용하지만 원하는 경우에는 적용되지 않습니다. 문제가 무엇인지 알기 위해 추가 한 두 번째 코드를 확인하십시오. 귀하의 도움을 기다리며 답변을 기다리고 있습니다. – TopDeveloper

+1

실제로 편집 된 행을 데이터 집합에 저장하는 방법에 적용되며 마지막 코드는 해당 데이터 집합을 데이터베이스에 저장하는 방법을 보여줍니다. – Abbas

+0

사실 이것은 내가 원하는 경우가 아니지만 보낸 링크가 ​​유용합니다. 당신의 도움을 주셔서 감사합니다. – TopDeveloper

0

"중요한 응용 프로그램"이라면 저장 프로 시저를 사용하고 패키지의 데이터베이스 사용자에게 EXECUTE 권한 만 부여하는 것이 좋습니다. 사용자가 전체 DML 권한을 가지고 있으면 데이터가 더 취약해질 수 있습니다.

여기에 나는 또한 Microsoft Enterprise Library보고 싶은데, 저장 프로 시저

당신은 시간이 있다면

를 호출에 basic tutorial입니다.

관련 문제