2014-01-19 3 views
1

У меня есть пара вопросов. Я делаю систему управления гимнастикой, чтобы представить ее в моем университете. Я внедрил базу данных, основанную на сервисах, прочитав учебники по адресу www.homeandlearn.co.uk. Проблема в том, что я не могу обновить егоНе удается получить обновление набора данных

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 

namespace Gym_Management_System 
{ 
    class GMSDConnectionClass 
    { 
     public string sql_string; 
     public string strCon; 

     public string Sql 
     { 
      set { sql_string = value; } 
     } 

     public string connection_string 
     { 

      set { strCon = value; } 

     } 

     public System.Data.DataSet GetConnection 
     { 

      get { return MyDataSet(); } 

     } 

     public System.Data.DataSet MyDataSet() 
     { 
      System.Data.SqlClient.SqlConnection con = new 
             System.Data.SqlClient.SqlConnection(strCon); 
      con.Open(); 
      System.Data.SqlClient.SqlDataAdapter da_1 = new 
           System.Data.SqlClient.SqlDataAdapter(sql_string, con); 
      System.Data.DataSet dat_set = new System.Data.DataSet(); 
      da_1.Fill(dat_set, "Table_data_1"); 
      con.Close(); 
      return dat_set; 
     } 

     public void UpdateDatabase(System.Data.DataSet ds) 
     { 
      System.Data.SqlClient.SqlCommandBuilder cb = new 
      System.Data.SqlClient.SqlCommandBuilder(da_1); 

      cb.DataAdapter.Update(ds.Tables[0]); 
     } 
    } 
} 

Проблема заключается в том, что я не могу получить доступ к da_1 в UpdateDatabase() методом.

Что случилось? Я пробовал пару вещей, но я не мог это получить. Это может быть простая проблема, но я совершенно не знаком с базой данных и этим материалом.

Примечание: я должен представить этот проект 23 января 2014 г.

+0

Пожалуйста, не повторяйте теги в заголовках вопросов. –

ответ

1

Переменные не могут быть доступны за пределами их объявляющего области. Существуют различные правила определения области охвата. Наиболее интересным здесь является метод-scope. Это может помочь объяснить:

public System.Data.DataSet MyDataSet() 
{ 
     // da_1 is delcared in this method.. it is only available here 
     ... 
     System.Data.SqlClient.SqlDataAdapter da_1 = new 
          System.Data.SqlClient.SqlDataAdapter(sql_string, con); 
     ... 
} 

public void UpdateDatabase(System.Data.DataSet ds) 
{ 
     // not available here 
} 

Для того, чтобы получить к нему доступ через методы в классе .. вы должны объявить его на уровне класса:

class GMSDConnectionClass 
{ 
    System.Data.SqlClient.SqlDataAdapter da_1; 

Затем вы можете назначить его, как это в другой метод :

da_1 = new System.Data.SqlClient.SqlDataAdapter(sql_string, con); 
+0

Да, это работает. Чему очень нравится чувак. Я буду здесь, чтобы узнать больше. –

+0

Но он по-прежнему не обновляет мою базу данных :( –

Смежные вопросы