PDA

View Full Version : دستور Update برای بانک اکسس



IranVisual
چهارشنبه 14 فروردین 1387, 19:34 عصر
میخواستم 5 تا فیلد رو توی بانک اکسس Update کنم اما نمیدونم چرا پیغام میده من این دستورات رو قبلا برای بانک sql استفاده میکردم و مشکلی نداشت اگه کسی دستور Update برای 5 تا فیلد توی بانک اکسس رو بلده بزاره ممنون میشم

mpmsoft
چهارشنبه 14 فروردین 1387, 20:21 عصر
دوست عزیز لطف کنید اون دستوره Update رو بذارید تا بهتر بتونیم کمکتون کنیم

ehsan_2000
چهارشنبه 14 فروردین 1387, 21:18 عصر
Dim f As String
f = Server.MapPath("db1.mdb")
Dim strConString As String = "provider=microsoft.jet.oledb.4.0;" + "data source=" + f
Dim Con As New OleDb.OleDbConnection(strConString)
Con.Open()
Dim Command As New OleDb.OleDbCommand("INSERT INTO daneshjoo (id,name,family,shsh) VALUES ('" & TextBox1.Text.Trim & "','" & TextBox2.Text.Trim & "','" & TextBox3.Text.Trim & "','" & TextBox4.Text.Trim & "','" & TextBox5.Text.Trim & "')", Con)
Command.ExecuteNonQuery()
Command.Dispose()
Con.Close()
Con.Dispose()

IranVisual
چهارشنبه 14 فروردین 1387, 21:27 عصر
این بیشتر شبیه با کد وارد کردن یک سری مشخصات جدید نیست من میخوام Update بشه

a_true_2004
چهارشنبه 14 فروردین 1387, 22:07 عصر
اگه از AccessDataSource استفاده می کنی در قسمت UpdateQuery این کد را وارد کن. با Query Builder میشه ساختش اما جلوی =ها حتماً ? بذار


UPDATE Table1
SET Name = ?, Family = ?
WHERE (ID = ?)

کد VB اون هم به این صورت میشه


AccessDataSource1.UpdateParameters(1).DefaultValue = txt_Name.Text
AccessDataSource1.UpdateParameters(2).DefaultValue = txt_Family.Text
AccessDataSource1.UpdateParameters(3).DefaultValue = txt_ID.Text
AccessDataSource1.Update()

3 خط اول پارامترها رو مقدار دهی می کنه و در خط 4 هم عمل Update انجام میشه.
باید دقت داشته باشی که پارامترها دقیقاً به همون ترتیبی که در Query وارد شده مقداردهی بشن.

nazaninam
چهارشنبه 14 فروردین 1387, 22:09 عصر
دوست عزیز دستور آپدیت برای Access رو به صورت زیر بنویس :



update yourtable set field1=?,field2=?,.... where yourid=?



بعد به ترتیب پارامتر ها را مقدار دهی کن

IranVisual
چهارشنبه 14 فروردین 1387, 22:45 عصر
من از این کد استفاده میکنم که کار نمیکنه

Dim objCommand As New OleDbCommand
objCommand.Connection = coon
objCommand.CommandText = "Update Rosta Set Filter='" & TextBox1.Text & "',mozo='" & TextBox2.Text & "' Where ID='" & ii & "'"
coon.Open()
objCommand.ExecuteNonQuery()
coon.Close()

IranVisual
شنبه 17 فروردین 1387, 08:45 صبح
کسی کد ما رو اصلاح نمیکنه خیلی لازمش دارم

Behrouz_Rad
شنبه 17 فروردین 1387, 09:18 صبح
سوالات فاقد ارزش فنی در این بخش مطرح نکنید.

IranVisual
شنبه 17 فروردین 1387, 09:30 صبح
آقای راد من با این کد مشکل دارم حلا فنی بودن سوال چیه دیگه من نمیدونم

el_abdollahi
شنبه 17 فروردین 1387, 11:15 صبح
اکسس به نوع پارامتر ها بیشتر از sql حساسیت داره . روی این موضوع بیشتر توجه کن . اگر فیلد ID از نوع numeric هست ، single quote ها رو اطرافش حذف کن .
موفق باشی.

sepide1
شنبه 17 فروردین 1387, 17:34 عصر
من کد updateبرات میزارم خودت دیگه فیلداشا عوض کن کاملا تست شده می باشد


OleDbConnection con = newOleDbConnection();
con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("sepide1.mdb") + ";user Id=Admin";
con.Open();
string SQLQuery = "UPDATE [info] SET [code1]=@code1,[name]=@name,[lname]=@lname WHERE [code1]=@code1";
OleDbCommand cmd = newOleDbCommand(SQLQuery, con);
cmd.Parameters.Add("@code1", OleDbType.Char, 10).Value = TextBox1.Text;
cmd.Parameters.Add("@name", OleDbType.Char, 10).Value = TextBox2.Text;
cmd.Parameters.Add("@lname", OleDbType.Char, 10).Value = TextBox3.Text;
cmd.ExecuteNonQuery();
con.Close();
Response.Write("اطلاعات با موفقیت تغییر یافت");

تبدیلشم به VB.net خیلی ساده است امیدوارم بدردت بخوره

IranVisual
شنبه 17 فروردین 1387, 18:19 عصر
من با VB کار میکنم میشه به VB تبدیلش کنین

sepide1
شنبه 17 فروردین 1387, 23:14 عصر
Dim con AsNew OleDbConnection()
con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("sepide1.mdb") + ";user Id=Admin"
con.Open()
Dim SQLQuery AsString = "UPDATE [info] SET [code1]=@code1,[name]=@name,[lname]=@lname WHERE [code1]=@code1"
Dim cmd AsNew OleDbCommand(SQLQuery, con)
cmd.Parameters.Add("@code1", OleDbType.[Char], 10).Value = TextBox1.Text
cmd.Parameters.Add("@name", OleDbType.[Char], 10).Value = TextBox2.Text
cmd.Parameters.Add("@lname", OleDbType.[Char], 10).Value = TextBox3.Text
cmd.ExecuteNonQuery()
con.Close()
Response.Write("اطلاعات شما با موفقیت تغییر یافت")