【发布时间】:2017-10-30 12:49:49
【问题描述】:
在这里我可以用分号存储许多用户 ID,我想要一个与下拉列表中选择的 user_id 匹配的 ID
<asp:GridView ID="TrainingTakenGridView" runat="server" AllowSorting="true" AlternatingRowStyle-CssClass="alt" AutoGenerateColumns="False" AutoGenerateSelectButton="false" CssClass="mGrid1" Width="100%" OnPageIndexChanging="TrainingTakenGridView_PageIndexChanging" DataKeyNames="training_id" OnSelectedIndexChanged="TrainingTakenGridView_SelectedIndexChanged" OnRowDataBound="TrainingTakenGridView_RowDataBound" >
<PagerSettings FirstPageText="First" LastPageText="Last" Mode="NumericFirstLast" PageButtonCount="10" />
<AlternatingRowStyle CssClass="alt" />
<Columns>
<asp:BoundField HeaderText="Training Date" DataField="training_date" />
<asp:BoundField HeaderText="Topic" DataField="topic" />
</Columns>
</asp:GridView>
这是我的 C# 代码
private DataTable bindTrainingAttendeedGridView(string condition)
{
DataTable dtGrid = new DataTable();
con.ConnectionString = constr;
//string query = "select training_id,convert(varchar(10),training_date,101) AS training_date,trainee,topic from tbl_training_attendee inner join tbl_userinfo on tbl_training_attendee.trainer=tbl_userinfo.user_id where tbl_training_attendee.training_id=" + condition;
string query = "select training_id,trainee,topic from tbl_training_attendee where tbl_training_attendee.training_id=trainee "+condition;
SqlCommand cmd = new SqlCommand(query, con);
SqlDataAdapter sqladapter = new SqlDataAdapter(cmd);
sqladapter.Fill(dtGrid);
if (dtGrid.Rows.Count <= 0)
{
Label1.Text = "No Matching Training taken Entries Found, Thank You.";
}
else
{
Label1.Text = "";
}
//con.Open();
return dtGrid;
}
protected void TrainingAttendenceGridViewBind(string condition)
{
try
{
TrainingAttendeedGridView.DataSource = bindTrainingAttendeedGridView(condition);
TrainingAttendeedGridView.DataBind();
}
catch (Exception er)
{
throw er;
}
}
protected void training_attendence_condition()
{
string condition = "";
if (UserDropDownList.SelectedIndex > 0)
{
condition += "AND tbl_training_attendee.trainee='" + UserDropDownList.SelectedValue + "'";
}
TrainingAttendenceGridViewBind(condition);
}
但如果数据库中有记录可用,它仍然可以显示空字段。请帮帮我。
这是我显示实习生的数据库
【问题讨论】:
-
永远不要将数据存储为分号分隔的项目。只会给你带来很多麻烦。
-
使用
string.Split(',')。但正如@jarlh 所说,最好不要那样存储它们。
标签: c# sql asp.net .net sql-server