在单击事件上执行 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