我有两张桌子。一个是具有列成员id,成员名字,成员姓氏的成员表。我有另一个表客人传递列客人传递ID,会员ID和发布日期。
我有一个列表视图,将显示访客通行证详细信息,例如会员姓名和发布日期。我有两个文本框。这些是用于输入会员姓名和签发日期。
会员名称文本框是自动完成的文本框,工作正常。
但问题是当我输入不在成员表中的名称时。此时,它将在成员名称列的列表视图中接受并显示空白字段,并且成员标识在客户传递表中存储为“0”。
我不想将成员名称显示为空白,我不想在访客通行证表中存储“0”。
这是插入声明:
sql2 = @"INSERT INTO guestpasses(member_Id,guestPass_IssueDate)";
sql2 += " VALUES(";
sql2 += "'" + tbCGuestPassesMemberId.Text + "'";
sql2 += ",'" + tbIssueDate.Text + "'";
guestpassmemberId = memberid
是否需要进行验证?有人可以提出这方面的建议吗?这是自动完成的文本框声明:
sql = @"SELECT member_Id FROM members WHERE concat(member_Firstname,'',member_Lastname) ='" + tbMemberName.Text+"'";
dt = GetData(sql, mf);
if (dt != null)
{
if (dt.Rows.Count > 0)
{
tbCGuestPassesMemberId.Text = Convert.ToInt32(dt.Rows[0] ["member_Id"]).ToString();
}
}
任何人都可以帮我这个吗? SQL查询是否有任何类型的验证?
答案 0 :(得分:1)
如果是* auto_increment *字段,则不必为memberID
提供值。 MySql为您插入该号码。另一方面,如果您需要将值之前显示为实际将该成员/访客数据写入数据存储,那么有几种方法可以实现这一点。
答案 1 :(得分:1)
你遇到的问题是tbCGuestPassesMemberId.Text总是会有一个值,无论它是否被设置。我建议将第一部分代码放在if语句中作为黑客攻击,因为我猜你的成员ID还是从1开始?
if (tbCGuestPassesMemberId.Text != 0)
{
sql2 = @"INSERT INTO guestpasses(member_Id,guestPass_IssueDate)";
sql2 += " VALUES(";
sql2 += "'" + tbCGuestPassesMemberId.Text + "'";
sql2 += ",'" + tbIssueDate.Text + "'";
}