SQL列以“0”作为值

时间:2011-06-27 12:20:32

标签: mysql sql

我有两张桌子。一个是具有列成员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查询是否有任何类型的验证?

2 个答案:

答案 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 + "'";
}