none
VS2008에서 엑서스DB연동해서 하는 건데요 RRS feed

  • 질문

  • string Connections = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:member.mdb";
                OleDbConnection conn = new OleDbConnection(Connections);

                //선택된 데이터그리드내용중 사번만 가지고 옵니다.
                int index = this.dataGridView1.CurrentRow.Index;
                int index1 = this.dataGridView1.CurrentCell.ColumnIndex;
                string str = (string)this.dataGridView1[1, index].Value;

                OleDbCommand oledbUpdate;
                OleDbCommand oledbSelect;

                //oledbSelect=new OleDbCommand("select * from member where 사번='" + str.ToString() + "'",conn);
                oledbSelect = new OleDbCommand("select * from member", conn);
                oldebadapter.SelectCommand = oledbSelect;

                DataSet dataset1 = new DataSet("Member");
                oldebadapter.Fill(dataset1, "Member");

                //SQL문이 복잡하기 떄문에 이 방식을 적용하여 실제값 대신에 @전화번호 이것을 입력합니다.
                string str1="update member set 이름=@이름, 전화번호=@전화번호,입사일자=@입사일자,주소=@주소,나이=@나이   where 사번=@사번";
                oledbUpdate = new OleDbCommand(str1, conn);
                oledbUpdate.Parameters.Add(new OleDbParameter("@사번", SqlDbType.Text)).Value = (string)this.dataGridView1[1,index].Value;
                oledbUpdate.Parameters.Add(new OleDbParameter("@이름", SqlDbType.Text)).Value = (string)this.dataGridView1[2,index].Value;
                oledbUpdate.Parameters.Add(new OleDbParameter("@전화번호", SqlDbType.Text)).Value = (string)this.dataGridView1[3,index].Value;
                oledbUpdate.Parameters.Add(new OleDbParameter("@입사일자", SqlDbType.Text)).Value = (string)this.dataGridView1[4,index].Value;
                oledbUpdate.Parameters.Add(new OleDbParameter("@주소", SqlDbType.Text)).Value = (string)this.dataGridView1[5, index].Value;
                //Int32함수를 써서 데이터 그리드뷰의 문자열 정수형으로 받음
                oledbUpdate.Parameters.Add(new OleDbParameter("@나이", SqlDbType.Int)).Value = System.Convert.ToInt32(this.dataGridView1[7, index].Value);
         
                oldebadapter.UpdateCommand = oledbUpdate;
                //가상의 데이터을 만드는데 전체다 수정이 아니기 때문에 필요조건만을 데이터셋을 만들기 위하여
                //where 문에에 기본키인 사번이 같은 데이터만 row데이터셋으로 옮긴다.
              
                DataTable table = dataset1.Tables[0];
                DataRow[] row = table.Select();
                //DataRow[] row = table.Select("사번 = '" + str.ToString() + "'");
               
                //index1열 index열(좌표를 얻어와서 문자열에 확인함
                //string Result = (string)this.dataGridView1[index1 , index].Value;
                //MessageBox.Show(Result);
                row[0]["사번"] = (string)this.dataGridView1[1, index].Value;
                row[0]["이름"] = (string)this.dataGridView1[2, index].Value;
                row[0]["전화번호"] = (string)this.dataGridView1[3, index].Value;
                row[0]["입사일자"] = (string)this.dataGridView1[4, index].Value;
                row[0]["주소"] = (string)this.dataGridView1[5, index].Value;
                row[0]["나이"] = System.Convert.ToInt32(this.dataGridView1[7, index].Value);
                //oldeb데이터 아답터를 이용하여 실제 DB내용을 수정
                oldebadapter.Update(dataset1, "Member");

                dataGridView1.DataSource = dataset1.Tables["Member"];


                //oldeb데이터 아답터를 이용하여 실제 DB내용을 수정
                oldebadapter.Update(dataset1, "Member");
                여기서 오류가 납니다.무슨 문제인가요?

    2009년 5월 7일 목요일 오전 7:28

모든 응답

  • 어떤 오류가 발생하는지에 대한 정확한 설명이 필요합니다. error 발생시에 나타나는 error code, error description 등을 확인하지 않고는 원인과 해결책을 말하기 쉽지 않겠죠.
    2009년 6월 4일 목요일 오전 6:30