PDA

View Full Version : ورود اطلاعات از ديتا گريد به ديتابيس



masoud.t123
یک شنبه 13 بهمن 1387, 19:51 عصر
ورود اطلاعات از ديتا گريد به ديتابيس
با عرض سلام خدمت تمامی اساتیدمحترم
من در حال نوشتن بخش فاکتور فروش در برنامه ام هستم. برای این کار از دیتابیس access و زبان vb.net استفاده کرده ام.حالا مشکلی که برام پیش آمده این است که مثلا هنگامی که کاربر داده ای رو وارد دیتا گرید کرد اگه پشیمان شد و خواست آن را update ویا delete کند این تغییرات در دیتابیس ذخیره نمی شود.
همچنین من در این برنامه ازابتدا از طریق کدنویسی با دیتابیس ارتباط برقرار می کنم.
یعنی مثلا :


con.open
cmd.commandtext="select …"
cmd.executenonquery

از شما عزیزان درخواست دارم که به بنده بگویید که چگونه می توان با تغییرات کاربر در دیتاگرید این اطلاعات در دیتابیس ذخیره گردند.
با تشکر.

masoud.t123
پنج شنبه 17 بهمن 1387, 09:36 صبح
از اساتید کسی سوال بنده را بلد نیست؟؟

danial82
جمعه 18 بهمن 1387, 16:18 عصر
http://barnamenevis.org/forum/showpost.php?p=667407&postcount=24

mostafaaa
چهارشنبه 23 بهمن 1387, 21:41 عصر
سلام دوست من
راه راحتش در صورتي كه توي جدولت PrimaryKey داشته باشي اينه كه از CommandBuilder استفاده كني :

Public Class Form1
Const ConnectionString As String = _
"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\Database1.accdb"
Dim Connection As OleDbConnection
Dim Command As OleDbCommand
Dim DataAdapter As OleDbDataAdapter
Dim Dtable As DataTable

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Connection = New OleDbConnection(ConnectionString)
Command = New OleDbCommand("SELECT * FROM Table1", Connection)
DataAdapter = New OleDbDataAdapter(Command)
Dtable = New DataTable("Table1")
DataAdapter.Fill(Dtable)
Me.DataGridView1.DataSource = Dtable
End Sub
و براي آپديت :

Private Sub btnUpdate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnUpdate.Click
Dim CB As New OleDb.OleDbCommandBuilder(DataAdapter)
DataAdapter.Update(Dtable)
End Sub
و راه ديگش اينه كه Command ها رو خودت بنويسي :

Private Sub btnUpdate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnUpdate.Click
'INSERT COMMAND
DataAdapter.InsertCommand = New OleDbCommand("INSERT INTO Table1 VALUES (@ID,@Name,@Family)", Connection)
DataAdapter.InsertCommand.Parameters.Add("@ID", OleDbType.VarChar, 40, "ID")
DataAdapter.InsertCommand.Parameters.Add("@Name", OleDbType.VarChar, 40, "Name")
DataAdapter.InsertCommand.Parameters.Add("@Family", OleDbType.VarChar, 40, "Family")
'DELETE COMMAND
DataAdapter.DeleteCommand = New OleDbCommand("DELETE FROM Table1" & _
" WHERE ID=@ID AND Name=@Name And Family=@Family", Connection)
DataAdapter.DeleteCommand.Parameters.Add("@ID", OleDbType.VarChar, 40, "ID")
DataAdapter.DeleteCommand.Parameters.Add("@Name", OleDbType.VarChar, 40, "Name")
DataAdapter.DeleteCommand.Parameters.Add("@Family", OleDbType.VarChar, 40, "Family")
'UPDATE COMMAND
DataAdapter.UpdateCommand = New OleDbCommand("UPDATE Table1 SET ID=?,Name=?,Family=?" & _
" WHERE ID=? AND Name=? And Family=?", Connection)
DataAdapter.UpdateCommand.Parameters.Add("ID", OleDbType.VarChar, 40, "ID")
DataAdapter.UpdateCommand.Parameters.Add("Name", OleDbType.VarChar, 40, "Name")
DataAdapter.UpdateCommand.Parameters.Add("Family", OleDbType.VarChar, 40, "Family")
DataAdapter.UpdateCommand.Parameters.Add("OldID", OleDbType.VarChar, 40, "ID").SourceVersion = DataRowVersion.Original
DataAdapter.UpdateCommand.Parameters.Add("OldName", OleDbType.VarChar, 40, "Name").SourceVersion = DataRowVersion.Original
DataAdapter.UpdateCommand.Parameters.Add("OldFamily", OleDbType.VarChar, 40, "Family").SourceVersion = DataRowVersion.Original
DataAdapter.Update(Dtable)

End Sub