PDA

View Full Version : کار با commandbuilder برای استفاده از دستورات SQL



yashardevilfish
یک شنبه 05 آبان 1387, 11:20 صبح
اینو می دونم برای اعمال تغییرات ایجاد شده Dataset بر روی بانک اطلاعاتی باید دستورات Insert , Delete,Update رو به کلاس DataAdapter اضافه کرد و برای این کار از کلاس Commandbuilder استفاه می کنیم اما...
**چند تا مثال در مورد Insert , delete با استفاده از commandbuilder نیاز دارم چون هیچ جایی مثالی از اون ندیدم.
**از دوستان ، اگه تعریف بهتری از Commandbuilder دارید برام بفرستید
**و اینکه برای عملیات Insert ,... از کدوم کلاس بیشتر استفاده می شه

davood-ahmadi
یک شنبه 05 آبان 1387, 16:28 عصر
کد اضافه کردن اطلاعات:

CnNorthwind = New SqlClient.SqlConnection
CnNorthwind.ConnectionString = "Server=.;database=northwind; trusted_connection=true"
cmd = CType(CnNorthwind.CreateCommand, SqlCommand)
cmd.CommandType = CommandType.Text
cmd.CommandText = "Select CustomerId, CompanyName, City, Country from Customers"
DsCustomer = New DataSet("DsCustomer")
Dim DaCustomer As New SqlDataAdapter(cmd)
Try
DaCustomer.Fill(DsCustomer, "Customers")
DsCustomer.Tables("Customers").PrimaryKey = New DataColumn() {DsCustomer.Tables("Customers").Columns("CustomerId")}
'این خط باعث می شود دستورات جدید و حذف و اصلاح طبق دستور درخواست برای دیتاآداپتور ساخته شود
Dim Cb As New SqlCommandBuilder(DaCustomer)
'در این خط یک دیتارو از رکورد جدید جدول مشتری ایجاد می کنیم
Dim DrCustomer As DataRow = DsCustomer.Tables("Customers").NewRow
'سپس دیتارو رو پر می کنیم
DrCustomer.Item(0) = TextBox1.Text
DrCustomer.Item(1) = TextBox2.Text
DrCustomer.Item(2) = TextBox3.Text
DrCustomer.Item(3) = TextBox4.Text
DsCustomer.Tables("Customers").Rows.Add(DrCustomer)
DaCustomer.Update(DsCustomer, "Customers")
DsCustomer.AcceptChanges()
Lbl.Text = " Record Was Aded"
Catch ex As Exception
DsCustomer.RejectChanges()
Lbl.Text = "Error: " & ex.Message
End Try


کد حذف اطلاعات:

CnNorthwind = New SqlClient.SqlConnection
CnNorthwind.ConnectionString = "Server=.;database=northwind; trusted_connection=true"
cmd = CType(CnNorthwind.CreateCommand, SqlCommand)
cmd.CommandType = CommandType.Text
cmd.CommandText = "Select CustomerId, CompanyName, City, Country from Customers"
DsCustomer = New DataSet("DsCustomer")
Dim DaCustomer As New SqlDataAdapter(cmd)
Try
DaCustomer.Fill(DsCustomer, "Customers")
DsCustomer.Tables("Customers").PrimaryKey = New DataColumn() {DsCustomer.Tables("Customers").Columns("CustomerId")}
'این خط باعث می شود دستورات جدید و حذف و اصلاح طبق دستور درخواست برای دیتاآداپتور ساخته شود
Dim Cb As New SqlCommandBuilder(DaCustomer)
'ابتدا رکوردی را که می خواهیم تغییر بدهیم پیدا می کنیم و سپس آنرا در دیتارو می ریزیم
Dim DrCustomer As DataRow = DsCustomer.Tables("Customers").Rows.Find(Me.TextBox1.Text)
'سپس دیتارو حذف می کنیم
DrCustomer.Delete()
DaCustomer.Update(DsCustomer, "Customers")
DsCustomer.AcceptChanges()
Lbl.Text = " Record Was Deleted"
Catch ex As Exception
DsCustomer.RejectChanges()
Lbl.Text = "Error: " & ex.Message
End Try

yashardevilfish
دوشنبه 13 آبان 1387, 16:04 عصر
خيلي ممنون از راهنمايي كه كردي ، خيلي مردي
اگه مي توني يه مثال از درج اطلاعات در بانك هم برام بزار ، خيلي مخلصيم

davood-ahmadi
سه شنبه 14 آبان 1387, 14:58 عصر
درج اطلاعات هم توش هست دقت کن