0

在单击事件上执行 LOAD_CHECKLIST_Click 的方法:

<asp:Button ID="Button234" UseSubmitBehavior="true" runat="server" Text="Preview Assessment List" Cssclass="btn btn-2925c btn-sm" onclick="LoadChecklist_Click"/>  

代码隐藏,加载 Checklist 从四个控件 CheckboxList 中获取参数:

public void LoadChecklist_Click(Object sender, System.EventArgs e)
{
    string strConnString =  System.Configuration.ConfigurationManager.ConnectionStrings      ["SQLDEV1"].ConnectionString;
    var SearchResultsTable = new DataTable();
    var con = new SqlConnection(strConnString);
    var cmd = new SqlCommand("sp_get_QUADRA_CHECKLIST", con);
    cmd.CommandType = CommandType.StoredProcedure;
    var adapter = new SqlDataAdapter(cmd);
    con.Open();
    SqlParameter param = new SqlParameter("@RO", lbRO);

    var texts = lbRO.Items
        .Cast<ListItem>()
        .Select(item => item.Text)
        .ToString();

    cmd.Parameters.Add("@AP_DEV", SqlDbType.Bit).Value = CbAPDev.Checked;
    cmd.Parameters.Add("@PROD_DEV", SqlDbType.Bit).Value =     cbProdDev.Checked;
    cmd.Parameters.Add("@SIPA", SqlDbType.NVarChar, (255)).Value =  ddlSIPA.Text;

    for (int i = 0; i < lbRO.Items.Count - 1; i++)
    {
        if(lbRO.Items.Count > 0)
        {
            List<string> selectedValues = lbRO.Items.Cast<ListItem>().Where(li => li.Selected).Select(li => li.Value).ToList();
            //cmd.Parameters.Add("@RO", SqlDbType.NVarChar, (255)).Value = selectedValues;
        }
        else
        {
            Response.Write("An error has occured!");
            con.Close();
        }

        //cmd.Parameters.Add("@RO", SqlDbType.Structured).Value = dtSIPA;
        try
        {
            adapter.Fill(SearchResultsTable);
            GV1.DataSource = SearchResultsTable;
            GV1.DataBind();
        }
        catch (System.Data.SqlClient.SqlException ex)
        {
            Response.Write(ex);
        }
        finally
        {
            con.Close();
        }
    }
}

RO的checkboxlist值的SQL参数化查询:

ALTER PROCEDURE [dbo].[sp_get_QUADRA_CHECKLIST] @AP_DEV bit = '',     @PROD_DEV     bit = '', @SIPA nvarchar(255) = '', @RO nvarchar(255) = '' AS
SELECT  cl.SIPA
    , cl.RO
    , cl.QUES_ID
    , 1 AS REV
    , cl.DFQRO AS QDRO
    , cl.QUADRA_QUES
    , '' AS QUES_ANSWER
    , ''AS COMMENTS
FROM Tbl_QUADRA_CL cl
WHERE (cl.RO = @RO or @RO is NULL)--(cl.RO IN(SELECT RO FROM @RO) OR (SELECT COUNT(RO) FROM @RO) = 0)
AND (cl.SIPA LIKE('%@SIPA%') OR @SIPA IS NULL)
AND (cl.AP_DEV = @AP_DEV)
AND (cl.PROD_DEV = @PROD_DEV)
GROUP BY 
 cl.SIPA
, cl.RO
, cl.QUES_ID
, cl.DFQRO
, cl.QUADRA_QUES
4

0 回答 0