2011-06-27 91 views
1

我有兩個表。一個是會員表,列成員id,成員名,成員姓。我有另一張桌子客人通過列客人通行證ID,會員ID和發行日期。SQL列以「0」爲值

我有一個列表視圖,將顯示訪客通行證的詳細信息,如成員名稱和發行日期。我有兩個文本框。這些用於輸入成員名稱和發佈日期。

成員名稱文本框是自動完成的文本框,工作正常。

但問題是,當我輸入不在成員表中的名稱。此時它將接受並顯示成員名稱列中的列表視圖中的空白字段,並且成員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

如果這個問題不清楚請親密我...... – user682417

+0

你基本上試圖確定'下一個''memberID',以便它可以顯示?另外,你需要參數化你的Sql。 ;) – IAbstract

+0

如果成員名稱不在列表中,它將接受並顯示帶有空成員名稱的列表視圖中的所有詳細信息。我不希望這顯示空的.....有沒有任何驗證,需要在自動完成文本框..... – user682417

回答

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

thanq WAX男人現在的工作....很多謝謝 – user682417

1

如果這是* auto_increment *字段,則不必爲memberID提供值。 MySql會爲您插入該號碼。另一方面,如果您需要顯示之前的值以實際將該成員/訪客數據寫入數據存儲區,那麼有幾種方法可以實現這一點。

+0

但那是不是guest pass表中的自動增量字段。成員id是訪客傳遞表的外鍵和成員表的主鍵 – user682417

+0

是否有任何驗證,將檢查在自動完成文本框中輸入的文本,表中的成員名稱稱爲members .... – user682417

+0

hi IAbstract would you pls give任何想法... – user682417