我必须在aspx中创建数据源吗?我可以在c#中做sqldatasource (sql SPROC),参数和数据绑定

本文关键字:sql SPROC sqldatasource 数据绑定 参数 中做 我可以 aspx 创建 数据源 | 更新日期: 2023-09-27 18:05:43

首先,我要为一个新手问题道歉,但我似乎找不到一个好的例子来说明我需要做什么。当我尝试在aspx页面中创建sqlDataSource并将会话参数赋值为type int时,我在数据类型和存储过程方面遇到了麻烦。我想尝试在代码背后做所有的事情,这样更容易调试。在aspx中做一部分工作,在代码后面做一部分工作,这对我来说似乎很困惑。我很想听听大家对此的意见,但是我在这里有代码显示了我的尝试的当前状态。你能帮我把它修好吗?

protected void DoReport()
{
  int ClinicID = Convert.ToInt32(Session["selectedClinic"]);
  String connstr = System.Configuration.ConfigurationManager.ConnectionStrings 
        ["PC3PaymentConnection"].ConnectionString;
       using (SqlConnection conn = new SqlConnection(connstr))
       {
       using ( SqlCommand cmdMeasureHist = new SqlCommand("GetMeasureDetailHistory", conn))
        {
        cmdMeasureHist.CommandType = CommandType.StoredProcedure;
        SqlParameter pclinic = cmdMeasureHist.Parameters.Add("@ClinicID", SqlDbType.Int);
        pclinic.Value = ClinicID;
        SqlParameter pCMSMID = cmdMeasureHist.Parameters.Add("@CMMeasureID", SqlDbType.Int);
        pCMSMID.Value = Convert.ToInt32(ddMeasures.SelectedValue);
        SqlDataSource DsMeasureHist = new SqlDataSource();
        gvHistory.DataSourceID = "DsMeasureHist";
        conn.Open();
        DsMeasureHist.ExecuteNonQuery();
  gvHistory.DataBind();
   }

我只是不明白如何将命令与数据源挂钩到gridview。请帮助!

我必须在aspx中创建数据源吗?我可以在c#中做sqldatasource (sql SPROC),参数和数据绑定

您需要为此使用SqlDataAdapter, ExecuteNonQuery()通常用于执行插入,更新,删除命令。如果需要一个数据源,可以使用DataReader或DataAdapter。检查以下示例:

<>之前使用(SqlCommand cmdMeasureHist = new SqlCommand("GetMeasureDetailHistory", conn)){cmdMeasureHist。CommandType = CommandType. storedprocedure;SqlParameter pclinic = cmdMeasureHist.Parameters。Add("@ClinicID SqlDbType.Int);pclinic。Value = ClinicID;SqlParameter pCMSMID = cmdMeasureHist.Parameters。Add("@CMMeasureID SqlDbType.Int);pCMSMID。Value = Convert.ToInt32(ddMeasures.SelectedValue);

SqlDataAdapter da = new SqlDataAdapter(cmdMeasureHist); DataTable dt = new DataTable(); da.Fill(dt); gvHistory.DataSource = dt; gvHistory.DataBind(); 之前

下面是如何定义SQLDataSource中的所有内容的示例。你可能需要对它进行更多的微调,但希望它能让你朝着正确的方向前进。

<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
        ConnectionString="<%$ ConnectionStrings:PC3PaymentConnection %>" 
        SelectCommand="GetMeasureDetailHistory"
SelectCommandType="StoredProcedure">
        <SelectParameters>
            <asp:ControlParameter Name="CMMeasureID"  ControlID="ddMeasures" 
PropertyName="SelectedValue" Type="Int32" />            
            <asp:SessionParameter Name="ClinicID" 
SessionField="selectedClinic" Type="Int32" />
            </SelectParameters>
        </asp:SqlDataSource>