2011-11-17 4 views
0

DataGridview에서 데이터베이스 레코드를 편집하고 거기에서 저장하고 싶습니다. 내가 DataGrid를 편집 할 수 있도록하기 위해 선언해야하는 속성은 무엇입니까? 그리고 button2 내 저장 버튼입니다, 어떻게 데이터베이스를 업데이 트합니까? 누군가 제발 저를 도와주세요!# datagridview에서 데이터베이스로 데이터 저장

{ 
     //Get ID 
     string strTagIds = string.Empty; 

     //Connection to datebase 
     string c1 = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Project.mdb"; 
     OleDbConnection con = new OleDbConnection(c1); 

    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     //button1.Click += new EventHandler(dataGridView1_CellContentClick); 

     //Bind button 
     string txt = textBox1.Text; 

     string strOleDbConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Project.mdb"; 
     string strSqlStatement = string.Empty; 
     strSqlStatement = "SELECT * FROM jiahe WHERE [User] = '" + txt + "'"; 
     OleDbConnection objConnection = new OleDbConnection(strOleDbConnectionString); 
     OleDbDataAdapter objAdapter = new OleDbDataAdapter(strSqlStatement, objConnection); 
     DataSet ds = new DataSet(); 
     objAdapter.Fill(ds); 

     DataTable dt = ds.Tables[0]; 
     dataGridView1.DataSource = dt.DefaultView; 

     try 
     { 
      if (dt.Rows.Count == 1) 
      { 
       string strLine = string.Empty; 
       string strUser = string.Empty; 

       foreach (DataRow dr in dt.Rows) 
       { 
        string strTags = dr["Tag ID"].ToString(); 
        strUser = dr["User"].ToString(); 
        string strAge = dr["Age"].ToString(); 
        string strPhoneNumber = dr["Phone Number"].ToString(); 

        // prepare command string 
        string selectString = @"SELECT Status FROM jiahe where [User] = '" + textBox1.Text + "'"; 

        // 1. Instantiate a new command with command text only 
        OleDbCommand cmd = new OleDbCommand(selectString, objConnection); 

        // 2. Set the Connection property 
        cmd.Connection.Open(); 

        // 3. Call ExecuteScalar to send command 
        string str = cmd.ExecuteScalar().ToString(); 

        cmd.Connection.Close(); 

       } 
      } 
      else 
      { 
       if (dt.Rows.Count == 0) 
       { 
        MessageBox.Show("Invalid input!"); 
       } 
      } 
     } 
     catch (Exception) 
     { 
      MessageBox.Show("Error!"); 
     } 
    } 

    private void textBox1_TextChanged(object sender, EventArgs e) 
    { 

    } 

    private void dataGridView1_CellContentClick(object sender, EventArgs e) 
    { 
     //dataGridView1.BeginEdit(true); 
     //MessageBox.Show("Hello"); 
    } 

    private void button2_Click(object sender, EventArgs e) 
    { 

    } 

답변

0

datagridview 셀 내용 값이 변경되었습니다. 선택한 행의 ID/색인을 사용하여 행을 편집 할 때마다 업데이트되는 문자열을 만들어야합니다. 그런 다음 button2를 클릭하면 데이터베이스를 업데이트 할 수 있습니다.

+0

어떻게 흐르게해야할까요? –

+0

여기에서보세요 http://www.switchonthecode.com/tutorials/csharp-tutorial-binding-a-datagridview-to-a-database 또는 여기 http://khanrahim.wordpress.com/2010/04/10/ insert-update-delete-with-datagridview-control-in-c-windows-application / – Coder

관련 문제