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();
   }

コマンドをデータソースからグリッドビューにフックする方法がわかりません。助けてください!

4

2 に答える 2

0

これにはSqlDataAdapterを使用する必要があります。ExecuteNonQuery()は通常、挿入、更新、削除コマンドを実行するためのものです。データソースが必要な場合は、DataReaderまたはDataAdapterのいずれかを使用します。次の例を確認してください。

  using(SqlCommand cmdMeasureHist = new SqlCommand( "GetMeasureDetailHistory"、conn))
        {{
        cmdMeasureHist.CommandType = CommandType.StoredProcedure;
        SqlParameter pclinic = cmdMeasureHist.Parameters.Add( "@ ClinicalID"、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 に答える