使用SqlServerDatabase绑定Checklistbox

时间:2013-04-02 09:58:21

标签: asp.net sql-server-2008

我想在sqlserver2008中使用Database绑定一个checklistbox。我在用户控制模块上使用asp.net C#。我写了一个代码。我想知道代码是否是完整的,并且还想知道我应该在哪个事件中放置此代码以获得正确的输出。

{
  int Post_Id = int.Parse(ViewState["ID"].ToString());
    SqlConnection cn1 = new SqlConnection();
    cn1.ConnectionString=
    ConfigurationManager.ConnectionStrings["SiteSqlServer"].ConnectionString;
    SqlDataAdapter da = new SqlDataAdapter("SelectTags", cn1);
    DataTable ds = new DataTable();
    SqlCommand cmnd1 = new SqlCommand("SelectTags", cn1);
    cmnd1.Parameters.AddWithValue("@Post_Id",Post_Id);
    cmnd1.CommandType = CommandType.StoredProcedure;
    cn1.Open();
    cmnd1.ExecuteNonQuery();
    da.Fill(ds);
    cn1.Close();
    foreach (DataRow dr in ds.Rows)
    {
        String field1 = dr["Tag_Name"].ToString();
        CheckBoxList2.Items.Add(field1);
        CheckBoxList2.DataBind();
    } 
}

sql server 2008的SQL查询

GO
/****** Object:  StoredProcedure [dbo].[InsertPost2Tag]    Script Date: 04/02/2013 09:47:01 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
Alter PROCEDURE [dbo].[SelectTags]
    -- Add the parameters for the stored procedure here
@Post_Id int
AS
BEGIN

    SELECT mst_Tag.Tag_Name FROM mst_Tag INNER JOIN Post2Tag ON mst_Tag.tagId = Post2Tag.Tag_Id Where Post2Tag.Post_Id=@Post_Id

END
GO

2 个答案:

答案 0 :(得分:1)

在页面加载中执行此操作

 if(!ispostback){
    CheckBoxList2.DataSource = ds; //This is the dataset that you fill from your stored procedure;
    CheckBoxList2.DataTextField = "Tag_Name";
    CheckBoxList2.DataValueField = "Tag_Name_Id";
    CheckBoxList2.DataBind();
 }

并在sp查询中再使用一个参数Tag_Name_Id ..

 SELECT mst_Tag.Tag_Name,Tag_Name_Id FROM mst_Tag INNER JOIN Post2Tag ON mst_Tag.tagId = Post2Tag.Tag_Id Where Post2Tag.Post_Id=@Post_Id

从代码中删除

foreach (DataRow dr in ds.Rows)
{
    String field1 = dr["Tag_Name"].ToString();
    CheckBoxList2.Items.Add(field1);
    CheckBoxList2.DataBind();
} 

希望这有帮助...如果这是你要求的?

答案 1 :(得分:0)

无需执行任何操作只需选中检查列表框的数据源,并在所选索引更改事件中将网格视图的选定值设置为会话变量。

它对我有用......而且太容易实现。