25 January, 2025

[Visual Basic] Insert ComboBox value into Database using Stored Procedure

January 25, 2025 Posted by Tôi Hùng ✅ , , No comments
Chào mọi người, bài viết này mình sẽ hướng dẫn mọi người cách lấy thông tin từ SEVER MYSQL để in ra COMBOBOX trên chương trình.

Quá trình thức hiện hoàn toàn đơn giản với số anh chị em trong giới lập trình web. Và mục thêm MYSQL sẽ rường rà khó hiểu với một số người chưa thuần trong việc này.

Chúng ta bắt đầu những dòng code sau để tạo bảng CSDL MYSQL.

CREATE PROCEDURE [Customers_InsertCustomer]
      @Name VARCHAR(100),
      @Country VARCHAR(50)
AS
BEGIN
      INSERT INTO [Customers]
                     ([Name]
                     ,[Country])
      VALUES
                     (@Name
                     ,@Country)
 
      SELECT SCOPE_IDENTITY()
END

Tiếp đó trên chương trình mới người thêm vào FORMS nhưng dữ kiện này.

Label : Dùng để kiểm soát nhãn.

TextBox : Dùng để ghi lại Tên cần chèn.

ComboBox : Để ghi lại Tên quốc gia cần chèn.

Thêm ConnectionString vào tệp App.Config.

Bạn cần thêm Chuỗi kết nối vào phần ConnectionStrings của tệp App.Config theo cách sau.
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <connectionStrings>
        <add name="constr" connectionString="Data Source=Mudassar-PC\SQL2019;Initial Catalog=AjaxSamples;Integrated Security=true" />
    </connectionStrings>
</configuration>

Bạn sẽ cần phải Imports không gian tên sau.

Imports System.Configuration
Imports System.Data.SqlClient

Chèn bản ghi vào Cơ sở dữ liệu bằng Stored Procedure trong Windows Forms

Bên trong trình xử lý sự kiện Form Load , các mục ComboBox được thêm vào.

Khi nhấp vào nút Insert , chuỗi kết nối sẽ được lấy từ tệp App.Config và đối tượng của lớp SqlConnection sẽ được tạo bằng cách sử dụng nó.

Lưu ý : Để biết thêm chi tiết về cách đọc Chuỗi kết nối từ tệp App.Config , vui lòng tham khảo bài viết Đọc (Lấy) Chuỗi kết nối từ tệp App.Config bằng C#VB.Net của tôi .

Sau đó, một đối tượng của lớp SqlCommand được tạo ra và truy vấn INSERT được truyền vào đối tượng đó dưới dạng tham số.

Các giá trị của Tên và Quốc gia được thêm vào làm tham số cho đối tượng SqlCommand.
Và kết nối được mở và hàm ExecuteScalar được thực thi.

Lưu ý : Để biết thêm chi tiết về cách sử dụng hàm ExecuteScalar , vui lòng tham khảo Tìm hiểu về SqlCommand ExecuteScalar trong C#VB.Net .


Cuối cùng, giá trị TextBoxComboBox được đặt thành trống và CustomerId của bản ghi được chèn sẽ được lấy và hiển thị trong MessageBox .
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    cbCountries.Items.Add("Please Select")
    cbCountries.Items.Add("United States")
    cbCountries.Items.Add("India")
    cbCountries.Items.Add("France")
    cbCountries.Items.Add("Russia")
End Sub
 
Private Sub OnInsert(ByVal sender As Object, ByVal e As EventArgs) Handles btnInsert.Click
    Dim customerId As Integer
    Dim spName As String = "Customers_InsertCustomer"
    Dim constring As String = ConfigurationManager.ConnectionStrings("constr").ConnectionString
    Using con As SqlConnection = New SqlConnection(constring)
        Using cmd As SqlCommand = New SqlCommand(spName)
            cmd.CommandType = CommandType.StoredProcedure
            cmd.Parameters.AddWithValue("@Name", txtName.Text)
            cmd.Parameters.AddWithValue("@Country", cbCountries.SelectedItem)
            cmd.Connection = con
            con.Open()
            customerId = Convert.ToInt32(cmd.ExecuteScalar())
            con.Close()
        End Using
    End Using
    txtName.Text = String.Empty
    cbCountries.Text = String.Empty
    MessageBox.Show("Inserted Customer ID: " & customerId)
End Sub

DEMO CHƯƠNG TRÌNH.


DOWNLOAD SOURCE CODE


PassWord Unzip: IHUNG.NAME.VN
Chúc mọi người thành công.

0 Comments:

Post a Comment

Top