Столбец SQL принимает значение «0» - PullRequest
1 голос
/ 27 июня 2011

У меня есть две таблицы.Один из них - таблица членов с идентификатором члена столбца, именем участника, фамилией участника.У меня есть другие гостевые проходы таблицы с идентификаторами гостевого прохода столбцов, идентификатором участника и датой выпуска.

У меня есть представление списка, в котором будут отображаться сведения о гостевых проходах, такие как имя участника и дата выпуска.У меня есть два текстовых поля.Они предназначены для ввода имени участника и даты выпуска.

Текстовое поле имени участника - это автоматическое заполнение текстового поля, которое работает нормально.

Но проблема заключается в том, что я ввожу имя, которого нет в таблице участников,В это время он будет принимать и отображать пустое поле в виде списка в столбце имени участника, а идентификатор участника хранится как «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 ]

1 голос
/ 28 июня 2011

Проблема у вас в том, что tbCGuestPassesMemberId.Text всегда будет иметь значение, независимо от того, установлено оно или нет. Я бы посоветовал поместить первый раздел кода в оператор if в качестве хака на этом, так как я полагаю, что ваши идентификаторы участников начинаются с 1 в любом случае?

if (tbCGuestPassesMemberId.Text != 0)
{
  sql2 = @"INSERT INTO guestpasses(member_Id,guestPass_IssueDate)";
  sql2 += " VALUES(";
  sql2 += "'" + tbCGuestPassesMemberId.Text + "'";
  sql2 += ",'" + tbIssueDate.Text + "'";
}
1 голос
/ 27 июня 2011

Вам не нужно указывать значение для memberID, если это поле * auto_increment *.MySql вставит этот номер для вас.Если, с другой стороны, требуется, чтобы значение отображалось до для фактической записи данных этого участника / гостя в хранилище данных, то есть несколько способов добиться этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...