使用預存程序從web頁面傳遞參數

來源:互聯網
上載者:User
web|預存程序|頁面|預存程序 首先建立預存程序,格式如下:
CREAT PROCEDURE sp_CustomersByState @region nvarchar(15) 
AS
 select CustomerID,CompanyName from Customers
 where region=@region Order by CompanyName
 RETURN 
編寫程式碼:
在C#代碼中,我們將使用新的類,System.Data.SqlClient.Parameter。該類的對象設計用於表示預存程序中的參數,因此建構函式需要知道名稱、資料類型和所討論的參數的大小。
<%@ Import namespace="System.Data" %>
<%@ Import namespace="System.Data.SqlClient" %>
<html>
  <head><title>Using Stored Procedures With Parameters</title></head>
  <body>
    <form runat="server" method="post">
      Enter a State Code:
      <asp:Textbox id="txtRegion" runat="server" />
      <asp:Button id="btnSubmit" runat="server"
                  Text="Search"  />
      <br/><br/>
      <asp:DataGrid id="dgOutput" runat="server" />
    </form>
  </body>
</html>
<script language="c#" runat="server">
private void Submit(object sender, EventArgs e)
{
  String strConnection ="Server=224NUMECA;database=Northwind;user id=sa;password=sa";
  SqlConnection objConnection = new SqlConnection(strConnection);
  SqlCommand objCommand = new SqlCommand("sp_CustomersByState", objConnection);
  objCommand.CommandType = CommandType.StoredProcedure;
  SqlParameter objParameter = new SqlParameter("@region", SqlDbType.NVarChar, 15);  
/* 建立名為@region並聲明為nvchar(15)的參數,它與預存程序中的聲明相匹配。該版本的建構函式的第二個參數總是system.data.sqlDbType枚舉的成員,該枚舉有24個成員,表示您可能需要的所有資料類型的。*/
 
 objCommand.Parameters.Add(objParameter);
/* 第二行將參數添加到命令對象的Parameter集合,經常會忘記該操作 */

  objParameter.Direction = ParameterDirection.Input;
/* 設定參數對象的Direction屬性,以決定它是否會用於將資訊傳遞給預存程序,或接收來自它的資訊。ParameterDirection.Input實際上就是該屬性的預設值,但是從維護和可讀性的觀點出發,將它放入代碼中是很有協助的。 */

  objParameter.Value = txtRegion.Text;
/* 我們將參數的value屬性設定為TxtRegion文字框的文字屬性。 */
  objConnection.Open();
  objConnection.Open(); 
  dgOutput.DataSource = objCommand.ExecuteReader();
  dgOutput.DataBind();
  objConnection.Close();
}
</script>



相關文章

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。