2012-07-22 70 views
3

我正在寫一個方法來查詢一個表並返回一個包含指定列的對象數據集。此外,我的用戶名&密碼有問題,所以我正在使用Windows身份驗證,但我不太清楚在我寫到現在的代碼段中。在方法中返回一個數據集作爲對象

protected void GetProgramList() 
    { 
     SqlConnection cn = new SqlConnection("server=Daffodils-PC/sqlexpress;Database=Assignment1;Trusted_Connection=Yes;"); 
     SqlCommand cmd = new SqlCommand("SELECT ProgramName FROM Program", cn); 
     SqlDataAdapter da = new SqlDataAdapter(cmd); 
     DataSet1 ds1 = new DataSet1(); 

    } 

我一直在試圖遵循MS官方文檔,但我不確定我要去哪裏?有人可以幫助我一些鏈接或片段?

+0

你在找什麼在這裏解釋。 http://stackoverflow.com/questions/6073382/read-sql-table-into-c-sharp-datatable – test 2012-07-22 06:07:49

+0

感謝您的鏈接! – unknownsatan 2012-07-22 06:09:11

回答

7

我會說你有2個選擇這裏的讀者: 1.做一個DataSet類變量,因此它的參考可以訪問(將其訪問修飾符設置爲public,以便可以從其他類訪問) 2.或者使用DataSet的返回類型創建方法。但在這種情況下,另一方面也必須設置爲接收數據集:

// 2。解決方案:

private void GetData() 
    { 
     //from inside some method: 
     DataSet ds = GetProgramList(); 
    } 

    protected DataSet GetProgramList() 
    { 
     DataSet ds1 = new DataSet(); 
     using (SqlConnection cn = new SqlConnection("server=Daffodils-PC/sqlexpress;Database=Assignment1;Trusted_Connection=Yes;")) 
     { 
      using (SqlDataAdapter da = new SqlDataAdapter(@"SELECT ProgramName FROM Program", cn)) 
       da.Fill(ds1, "TableName1"); 
     } 
     return ds1; 
    } 
    // 


//1. solution: 
class YourClass 
{ 
    DataSet ds1; 
    protected void GetProgramList() 
    { 
     SqlConnection cn = new SqlConnection("server=Daffodils-PC/sqlexpress;Database=Assignment1;Trusted_Connection=Yes;"); 
     SqlCommand cmd = new SqlCommand("SELECT ProgramName FROM Program", cn); 
     SqlDataAdapter da = new SqlDataAdapter(cmd); 
     ds1 = new DataSet(); 
    } 
} 
+0

我在這裏犯的錯誤是,我沒有返回任何東西,我正在使用一個無效的方法。我應該使用什麼類型的數據集? – unknownsatan 2012-07-22 06:23:42

+0

DataSet返回類型的課程 - 如果你使用我的第二個解決方案! ...如果你使用我的第一個解決方案,你使用void返回類型! – 2012-07-22 06:31:25

+0

現在讓我試試這個。 – unknownsatan 2012-07-22 06:34:06

0

建議: 「使用」 System.Data和System.Data.SqlClient,並使用 「SqlDataReader對象」:

無論是讀你的日常家居(一般首選)或將SqlDataReader傳回給調用者(作爲函數返回)。

而且一定要.Close()時,即可大功告成:)

1

放置在appSettings部分在連接字符串中的app.config或web.config中

public string GetSqlConnection() 
    { 
     return System.Configuration.ConfigurationManager.AppSettings["SqlConnectionString"]; 
    } 



    public DataSet getDataSet(string sql) 
    { 
     DataSet ds = new DataSet(); 
     SqlConnection conn = new SqlConnection(GetSqlConnection()); 
     SqlDataAdapter da = new SqlDataAdapter(sql, conn); 
     da.Fill(ds); 
     conn.Close(); 
     conn.Dispose(); 
     da.Dispose(); 
     return ds; 
    }