2014-01-19 30 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]); 
     } 
    } 
} 

的问题是,我不能在UpdateDatabase()方法访问da_1

有什么不对?我尝试了几件事,但我无法得到它。这可能是一个简单的问题,但我对数据库和这个东西是全新的。

注: 我必须提交1月23日2014年

+0

请不要在问题标题中重复标记。 –

回答

1

变量不能将其申报范围的外部访问这个项目。有各种范围规则。你最关心的是方法范围。这可能有助于解释:

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

但它仍然没有更新我的数据库:( –