2014-05-12 1 views
2

add-edit-delete 기능이있는 시스템을 만들고 있지만, ms SQL Server 2005에서 값을 편집 할 때마다 "테이블 0을 찾을 수 없습니다"라는 메시지가 계속 표시됩니다. 여기에 문제가 될 것으로 보인다 내가 전역 함수"테이블 0을 찾을 수 없습니다"라는 말을 계속하는 이유는 무엇입니까?

DataSet ds = new DataSet(); 

    SqlConnection conn = new SqlConnection("Data Source=MJ-PC\\SQLEXPRESS;Initial Catalog=Users;Integrated Security=True"); 


    BindingSource tblNamesBS = new BindingSource(); 

만든 코드 위

private void button2_Click(object sender, EventArgs e) 
    { 
     try 
     { 
      SqlDataAdapter dad = new SqlDataAdapter(); 
      SqlCommandBuilder scb = new SqlCommandBuilder(dad); 

      dad.UpdateCommand = new SqlCommand("UPDATE tblSchools SET Number = @id, School_Name = @school, Province = @prov, City = @city, Brgy = @brgy, Lot_Num = @lot, Area = @area, Mem_Date_Rec = @date, Cenro = @cenro", conn); 
      dad.UpdateCommand.Parameters.Add("@school", SqlDbType.VarChar).Value = textBox1.Text; 
      dad.UpdateCommand.Parameters.Add("@prov", SqlDbType.VarChar).Value = comboBox1.Text; 
      dad.UpdateCommand.Parameters.Add("@city", SqlDbType.VarChar).Value = textBox2.Text; 
      dad.UpdateCommand.Parameters.Add("@brgy", SqlDbType.VarChar).Value = textBox4.Text; 
      dad.UpdateCommand.Parameters.Add("@lot", SqlDbType.NVarChar).Value = textBox5.Text; 
      dad.UpdateCommand.Parameters.Add("@area", SqlDbType.Decimal).Value = textBox6.Text; 
      dad.UpdateCommand.Parameters.Add("@date", SqlDbType.DateTime).Value = dateTimePicker1.Value.Date; 
      dad.UpdateCommand.Parameters.Add("@cenro", SqlDbType.NVarChar).Value = textBox8.Text; 
      dad.UpdateCommand.Parameters.Add("@id", SqlDbType.Int).Value = ds.Tables[0].Rows[tblNamesBS.Position][0]; 

      conn.Open(); 
      dad.UpdateCommand.ExecuteNonQuery(); 
      conn.Close(); 


     } 
     catch (Exception ex) 
     { 
      MessageBox.Show(ex.Message); 
     } 
    } 

?? : 아래 난 비주얼 스튜디오 C#을 2008 년 내 코드를 사용하고있다

오와 내가 더블 클릭 이벤트가있는 DataGridView를 만들어까지 추가하려면 아래에있는 내 코드입니다 :

private void dg_DoubleClick(object sender, EventArgs e) 
    { 
     try 
     { 
      button2.Visible = true; 
      button5.Visible = true; 
      DataTable dt = new DataTable(); 
      SqlDataAdapter dad = new SqlDataAdapter("SELECT * FROM tblSchools WHERE Number ="+ 
       Convert.ToInt16(dg.SelectedRows[0].Cells[0].Value.ToString()) + "", conn); 
      dad.Fill(dt); 

      textBox1.Text = dt.Rows[0][1].ToString(); 
      comboBox1.Text = dt.Rows[0][2].ToString(); 
      textBox2.Text = dt.Rows[0][3].ToString(); 
      textBox4.Text = dt.Rows[0][4].ToString(); 
      textBox5.Text = dt.Rows[0][5].ToString(); 
      textBox6.Text = dt.Rows[0][6].ToString(); 
      //dateTimePicker1.Value = dt.Rows[0][7]; 
      textBox8.Text = dt.Rows[0][8].ToString(); 



     } 
     catch (Exception ex) 
     { 
      MessageBox.Show(ex.ToString()); 
     } 
    } 

이 코드 내 편집에 영향을 미칠 것인가?

답변

1

당신은 빈 데이터가

DataSet ds = new DataSet(); 

을 설정하고 나중에 거기에 Table[0]에 액세스하려고하지만 정의 일이없는 선언했다.

+0

내가 틀렸다면 나를 수정하십시오. 나는 sqlcommand로 dataset을 선언해야한다. 내가 잘못? – Mark

+0

원하는 방식으로 채울 수 있지만 일반적인 방법은 DataAdapter –

+0

을 사용하여이를 파악하는 데 도움이됩니다. 어떻게 제대로 채울 수 있습니까? – Mark

관련 문제