/ / MSACCESS टेबल में नए रिकॉर्ड बनाना - vb.net, एमएस-एक्सेस

MSACCESS तालिका में नए रिकॉर्ड बनाना - vb.net, ms-access

मैं vb से एक नया रिकॉर्ड बनाने का प्रयास कर रहा हूँ।एक msaccess तालिका के लिए नेट, जो मैं करने में सक्षम हूं, लेकिन मुझे वास्तव में इसे बचाने के लिए अगले लगातार आईडी नंबर में जोड़ना होगा। उदाहरण के लिए, अगर एक्सेस डीबी में अगली आईडी 4 है, तो मुझे अपने फॉर्म पर आईडी टेक्स्टफील्ड में 4 में टाइप करना होगा। नीचे कोड:

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Dim sqlinsert As String
" We use the INSERT statement which tells our program to add the information
" from the Forms Text fields into the Databases columns.
sqlinsert = "INSERT INTO Table1(Title, YearofFilm, Description, Field1, ID)" & _
"VALUES(@Title, @YearofFilm, @Description, @Field1, @ID)"
Dim cmd As New OleDbCommand(sqlinsert, con1)
" This assigns the values for our columns in the DataBase.
" To ensure the correct values are written to the correct column
cmd.Parameters.Add(New OleDbParameter("@Title", TextBox1.Text))
cmd.Parameters.Add(New OleDbParameter("@YearofFilm", Convert.ToInt32(TextBox2.Text)))
cmd.Parameters.Add(New OleDbParameter("@Description", TextBox3.Text))
cmd.Parameters.Add(New OleDbParameter("@Field1", TextBox4.Text))
cmd.Parameters.Add(New OleDbParameter("@ID", Convert.ToInt32(TextBox5.Text)))
" This is what actually writes our changes to the DataBase.
" You have to open the connection, execute the commands and
" then close connection.
con1.Open()
cmd.ExecuteNonQuery()
con1.Close()
" This are subs in Module1, to clear all the TextBoxes on the form
" and refresh the DataGridView on the MainForm to show our new records.
ClearTextBox(Me)
RefreshDGV()
Me.Close()
End Sub

मैं एक्सेस बॉक्स में अगला नंबर होने के लिए टैक्स्टबॉक्स 5 को कैसे कह सकता हूं जो आईडी फील्ड है?

उत्तर:

जवाब के लिए 0 № 1

अपना एक्सेस डेटाबेस खोलें, अपनी तालिका की संरचना दिखाएं और ID फ़ील्ड प्रकार को संख्यात्मक से बदलें वाहन नंबर.

अब आपके कोड डॉन को एक्सेस करने के लिए कुछ भी पास करने की आवश्यकता नहीं है क्योंकि नंबर एक्सेस से अपने आप हैंडल हो जाएगा।

अपने क्षेत्र में प्रवेश द्वारा निर्दिष्ट संख्या वापस पाने के लिए आप इन पंक्तियों को अपने कोड में जोड़ सकते हैं

Dim sqlinsert As String
sqlinsert = "INSERT INTO Table1(Title, YearofFilm, Description, Field1)" & _
"VALUES(@Title, @YearofFilm, @Description, @Field1)"
Dim cmd As New OleDbCommand(sqlinsert, con1)
cmd.Parameters.Add(New OleDbParameter("@Title", TextBox1.Text))
cmd.Parameters.Add(New OleDbParameter("@YearofFilm", Convert.ToInt32(TextBox2.Text)))
cmd.Parameters.Add(New OleDbParameter("@Description", TextBox3.Text))
cmd.Parameters.Add(New OleDbParameter("@Field1", TextBox4.Text))
con1.Open()
cmd.ExecuteNonQuery()
cmd.Parameters.Clear()
cmd.CommandText = "SELECT @@IDENTITY"
Dim assignedID = Convert.ToInt32(cmd.ExecuteScalar())
" Eventually
TextBox5.Text = assignedID.ToString
con1.Close()
......

यह भी देखें MS-Access में अंतिम स्वत: सहेजे गए मान को कैसे पुनः प्राप्त करें जैसे @@ Sql सर्वर में पहचान


जवाब के लिए 0 № 2

अधिकतम संख्या तालिका को पुनः प्राप्त करने के लिए एक सेलेक्ट स्टेटमेंट बनाएं और उसमें एक जोड़ें। मुझे VB.Net नहीं पता है, इसलिए यह कुछ ऐसा होना चाहिए।

maxQry = "SELECT Max(IDColumnName) As MaxID FROM theTableName;"
Dim cmd As New OleDbCommand(maxQry, con1)
dr = cmd.ExecuteReader
If dr.HasRows Then
While dr.Read()
TextBox5.Text = dr("MaxID").ToString
End While
End If

जब तक फ़ील्ड एक AutoNumber प्रकार नहीं है, तो आपको इसके बारे में चिंता करने की ज़रूरत नहीं है।