2010-11-18 73 views
3

我正在從MSVS中的DataTableAdapters轉換到在MS SQL Server中創建存儲過程。ASP.NET C#&存儲過程

這是我到目前爲止。

protected void Submit_Click(object sender, EventArgs e) 
    { 
     var conString = ConfigurationManager.AppSettings["ConnectionString"].ToString(); 
     using (SqlConnection con = new SqlConnection(conString)) 
     { 
      using (SqlCommand cmd = new SqlCommand("getAdministrators", con)) 
      { 
       cmd.Parameters.Add("@userName", SqlDbType.VarChar).Value = userNameTB.Text; 
       cmd.Parameters.Add("@password", SqlDbType.VarChar).Value = passwordTB.Text; 
       cmd.CommandType = CommandType.StoredProcedure; 
       using (SqlDataAdapter da = new SqlDataAdapter(cmd)) 
       { 
        DataSet ds = new DataSet(); 
        da.Fill(ds); 
       } 
      } 
     } 
    } 

我想抓住所有的行/列,並將它們存儲在一個DataSet,並使用任何我希望在我的意願返回的值。我錯過了什麼來完成這一點。或者如果有人有一篇文章可以提供幫助?

我更新了代碼以使用using

我覺得代碼慢慢變有...

+2

注意:你應該養成使用'using'的東西像'SqlCommand','SqlConnection'等 – 2010-11-18 03:10:59

+0

definetely的習慣。 「遲開,早關」。也 - 你確定這些字段是'VarChar'而不是'NVarChar'? – RPM1984 2010-11-18 03:13:38

+0

在On_Click的開頭,我在那裏拋出一個使用?任何代碼片段或文章? – balexander 2010-11-18 03:15:55

回答

2

這段代碼的工作原理:

public static DataSet GetAll(int id) 
    { 
     using (SqlConnection con = new SqlConnection(Database.ConnectionString)) 
     { 
      using (SqlCommand cmd = new SqlCommand("sp_ContactGetAll", con)) 
      { 
       cmd.CommandType = CommandType.StoredProcedure; 
       using (SqlDataAdapter da = new SqlDataAdapter(cmd)) 
       { 
        DataSet dsData = new DataSet(); 
        da.Fill(dsData); 
        return dsData; 
       } 
      } 
     } 
    } 
+0

雖然點擊按鈕時我的代碼被觸發了,那麼我應該如何替換RETURN? – balexander 2010-11-18 12:54:01

+0

不返回任何內容,將我的函數聲明更改爲您的submit_click事件聲明並刪除返回語句。 – 2010-11-18 14:58:43

0

我可能是錯的,但我希望以下工作:

using(var reader = cmd.ExecuteReader()) { 
    ds.Tables[0].Load(reader); 
} 

(假設要填充零表)

+0

我想將所有內容都返回到一個很好的有組織的集合中,並使用最少量的代碼來引用它。 – balexander 2010-11-18 03:15:17

+0

@ Bry4n一個很好的目標 - 雖然我不明白這意味着我的答覆。 – 2010-11-18 03:34:20

+0

我不知道。我可能不知道要問的問題。我從來沒有在C#中使用SP,我主要在工作中使用ColdFusion,這是非常不同的。像我使用DataSets和ExecuteReader?哪些需要進入或退出連接? ha – balexander 2010-11-18 03:51:29