0

首先,我会为一个新手问题道歉,但我似乎找不到一个很好的例子来说明我需要做什么。当我尝试在我的 aspx 页面中创建一个 sqlDataSource 并分配 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。请帮忙!

4

2 回答 2

0

您需要为此使用 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();

于 2013-03-25T06:27:11.187 回答
0

下面是一个如何定义 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>
于 2013-03-25T10:54:33.230 回答