2010-11-18 70 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