2017-09-16 4 views
0

ヘルプが必要です。これは私のコードと私のデータベーステーブルです。 itemcatは、のtbl_categoryに基づき、IN、PF、SS、SV + idの番号を示します。ID番号にはテキスト

ご覧のとおりです。 PF003およびSS003は同じ番号を有する。それを自動的にSS004に変更する方法は?

Private Sub AutoGenerateID() 
     Dim mysqlconnection As MySqlConnection 
     Dim command As New MySqlCommand 

    mysqlconnection = New MySqlConnection() 
    mysqlconnection.ConnectionString = "Server=localhost;User=root;Password=;Database=debis" 
    command.Connection = mysqlconnection 
    mysqlconnection.Open() 

    da = New MySqlDataAdapter("select * from tbl_category where catname = '" & cmbcat.SelectedItem & "'", con) 
    ds.Reset() 
    da.Fill(ds) 

    Dim sqlquery = "select Max(itemid) from tbl_item " 
    command.CommandText = sqlquery 
    Dim ID As Integer 
    Dim value As String 
    Dim i As Integer 
    For i = 0 To ds.Tables(0).Rows.Count - 1 
     value = command.ExecuteScalar().ToString() 
     If String.IsNullOrEmpty(value) Then 
      value = (ds.Tables(0).Rows(i).Item("catid")) + "0000" 
     End If 
     value = value.Substring(3) 
     Int32.TryParse(value, ID) 
     ID = ID + 1 
     value = (ds.Tables(0).Rows(i).Item("catid")) + ID.ToString("D3") 
     tbitemid.Text = value 
    Next 
    command.Dispose() 
    mysqlconnection.Close() 
    mysqlconnection.Dispose() 
End Sub 

This is the image of the table

+1

最初に、SQLクエリを作成するための連結文字列を使用しないでください。 SQLパラメータを使用する - 常に。コンパイルIDを自動的に作成する方法はありません。 IDはDBによって作成されなければならず、その唯一の目的は一意の識別子を提供することです。あなたのテーブルが通常の自動生成IDとカテゴリコードを使用していた場合、* ID + CatCodeをクエリに一緒に貼り付けることでユーザーに欲しいものに見える*ようにすることができます。 – Plutonix

+0

@Plutonixどのように?その出来栄えを私に見せてください。どうもありがとうございます! – Drin

答えて

0

最初の部分は常にある場合は2文字の長その後、あなただけの数の一部をインクリメントするためにあなたの文字列を分割することができます。

intValue = val(strings.mid(value,3)) 
intValue = intValue + 1 

また、Web上にコードを投稿するときに、サーバーアドレス、ユーザー/パスワードを非表示/変更する必要があります。