PDA

View Full Version : سوال: پیدا کردن یک آیتم از یک رکورد در دیتابیس



viper2009
جمعه 20 آذر 1388, 03:52 صبح
سلام دوستان

با چه کدی می تونم یک آیتم در رکورد پیدا کنم و آیا این آیتم وجود دارد یا نه؟

مثلاً کد شماره 200 در جدول هست یا نه اگر هست شماره ID برگردونه


و این سوالم رو جوری دیگه مطرح می کنم

من می خوام سفارشی را از خریدار بگیرم و در جدولی دیگر ثبت کنم حال اگر خریدار به من 20 تا کتاب سفارش داد من درج می کنم در آن جدول و همچنین سفارشات بعدی او

اما هنگامی که خریدار در سفارشش اشتباه می کنه و باید آن سفارش یعنی 20 کتاب به 5 کتاب تبدیل شود
اگر این کار رو بکنم یک بار دیگه 5 تا کتاب ثبت می شه و این عمل تکراری هست یعنی در جدول دو سفارش تکراری دارم
و من می خوام برای ویرایش همان 20 تا کتاب در جای خودش ویرایش شود

پس واسه همین آی دی آن رکورد را لازم دارم که آیا این کد وجود دارد یا نه

ببخشید سرتون رو درد آوردم .

viper2009
جمعه 20 آذر 1388, 04:16 صبح
بهتر بگم که

وقتی یک رکوردی ذخیره میشه چک بشه که اگر این رکورد با این کد وجود ندارد ذخیره کند و گرنه همان را ویرایش کنه.

saadi2
جمعه 20 آذر 1388, 10:32 صبح
Imports System.Data.OleDb
Public Class Form1
Dim Da As New OleDbDataAdapter
Dim com As New OleDbCommand
Dim con As New OleDbConnection(Str)
Dim Ds As New DataSet
Dim Tb As New DataTable
Const Str As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = Data.mdb"
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Tb = New DataTable
If con.State = ConnectionState.Closed Then con.Open()
Da = New OleDbDataAdapter("select * from kharid where id=" + TextBox1.Text, Str)
Da.Fill(Tb)
con.Close()
If Tb.Rows.Count Then
If con.State = ConnectionState.Closed Then con.Open()
Try
com = New OleDbCommand _
("update kharid set name=@name,kala=@kala,tedad=@tedad,baha=@baha where id=@id ", con)
With com.Parameters
.Clear()
.AddWithValue("@id", Val(TextBox1.Text))
.AddWithValue("@name", TextBox2.Text)
.AddWithValue("@kala", TextBox3.Text)
.AddWithValue("@tedad", Val(TextBox4.Text))
.AddWithValue("@baha", CType(TextBox5.Text, Double))
End With
com.ExecuteNonQuery()
MsgBox("ok")
Catch ex As Exception
MsgBox(ex.Message)
End Try
con.Close()
fill()
Else
If con.State = ConnectionState.Closed Then con.Open()
com = New OleDbCommand("insert into kharid(id,name,kala,tedad,baha) values(@id,@name,@kala,@tedad,@baha)", con)
With com.Parameters
.Clear()
.AddWithValue("@id", Val(TextBox1.Text))
.AddWithValue("@name", TextBox2.Text)
.AddWithValue("@kala", TextBox3.Text)
.AddWithValue("@tedad", Val(TextBox4.Text))
.AddWithValue("@baha", CType(TextBox5.Text, Double))
End With
com.ExecuteNonQuery()
con.Close()
fill()
End If
End Sub

Sub fill()
Ds = New DataSet
If con.State = ConnectionState.Closed Then con.Open()
Da = New OleDbDataAdapter("select * from kharid", Str)
Da.Fill(Ds, "kharid")
con.Close()
Me.DataGridView1.DataBindings.Clear()
Me.DataGridView1.DataSource = Ds.Tables("kharid")
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
fill()
End Sub
End Class

viper2009
شنبه 21 آذر 1388, 00:10 صبح
Saadi جان ممنون

ولی من اطلاعات رو از چند جدول می گیرم و در جدولی دیگه درج می کنم و Id هاشون AutoNumber هستند پس فیلدی واسه آی دی آن ندارم

برای همین با این کد نمی شه