معادل این دستور چیه؟
'ol_cm = New OleDbCommand("UPDATE A_Tabdil SET raft = false WHERE A_Tabdil.id_shali = Factor_F_T.id_shali ", ol_cn)
'ol_cm.ExecuteReader()
میشه تو شرط update این کارو کرد؟؟؟؟؟؟؟؟؟؟؟؟
Printable View
معادل این دستور چیه؟
'ol_cm = New OleDbCommand("UPDATE A_Tabdil SET raft = false WHERE A_Tabdil.id_shali = Factor_F_T.id_shali ", ol_cn)
'ol_cm.ExecuteReader()
میشه تو شرط update این کارو کرد؟؟؟؟؟؟؟؟؟؟؟؟
اره توي vb.net اين يك كاره خيلي ساده هستش شما مي توني يك كوئري توليد كني كه يك دستور update ( sql ) داخلش باشه بعد ديتا اداپتورتو با اون دستور fill كني البته براي اينكه يك شرط رو بتوني چك كني بايد از پارامتر هاي استفاد ه كني مثلا مي گي WHERE ID =I حالا مي ري توي پنجره تنظيمات ( سمت راست برنامه ) و اونجا در قسمت پارامتر يك پارامتر به نا م i اضافه مي كني همين و بس ( وقتي كه ادابتور رو با اون fill كني ميگه كه يك مقدار براي اون پارامتر بفرست )
سلام...
از ExecuteNonQuery به جای ExecuteReader استفاده کنید ... ایشالا که جواب میده ...
گمونم دستور Update مشکلی نداشته باشه ... :متفکر:
این قالب نوشتن آپدیته:
UPDATE TABLE "table_name"
SET ("column_1", "column_2") = ([new value 1], [new value 2])
WHERE {condition}
حالا میتونی اینجوری بنویسی ...
dim strsql as string
.
.
.
StrSql = "Update TABLE_NAME SET (NAME,TELL) = (@Name,@Tell) where ID='100' "
Dim cn As New OleDbConnection(ConStr)
Dim cmd As New OleDbCommand(StrSql, cn)
cmd.Parameters.Add("@name", txtname.Text)
cmd.Parameters.Add("@tell", txttell.Text)
cn.open()
cmd. ExecuteNonQuery()
cn.close()
فکر کنم خیلی واضح باشه ...
اون بالا نحوه اضافه کردن پارامتر به command رو نوشتم که چطوری بتونی مقداری رو که تو یه تکست باکس هست در Query استفاده و جایگزین کنی...
مثلا قصد داری رکورد ID=100 رو پیدا کنی و مقدار name و tell رو از تکست باکس روی فرم مربوط به اونا بخونی و در جدول UPDATE کنی ...
((البته میتونی جای 100 هم با استفاده از پارامتر هر چی خواستی بذاری...))
و هر وقت که خط cmd. ExecuteNonQuery اجرا شد Query با پارامترهای مربوطه مقداردهی شده ادغام شده و در جدول اعمال میشه ...
در ضمن اگر دقت کرده باشی از OLEdbcommand و OleDbConnection استفاده کردم یعنی دارم از اکسس استفاده میکنم ...
کد خودتو اینجوری نوشتم ... نمیدونم منظورتون همین بوده یا نه ...
Dim StrSql as string = "Update A_Tabdil SET raft = 'false' where A_Tabdil.id_shali = @Temp1"
Dim ol_cn As New OleDbConnection(ConStr)
Dim ol_cm As New OleDbCommand(StrSql, ol_cn)
cmd.Parameters.Add("@Temp1",Factor_F_T.id_shali)
ol_cn.open()
ol_cm. ExecuteNonQuery()
ol_cn.close()
ExecuteNonQuery زمانی استفاده میشه که بخوای در Query از UPDATE,INSERT و ... استفاده کنی و اگر در Query از SELECT استفاده کنی باید از Executereader استفاده کنی ...
فکر کنم کافی باشه ... :بامزه:
اگر سوال دیگه ای داشتی در خدمتیم ... :لبخندساده:
موفق باشی... :چشمک:
جدی؟
من UPDATE بلدم
من میخوام تو فرم لود اینو بنویسم
'ol_cm = New OleDbCommand("UPDATE A_Tabdil SET raft = false WHERE A_Tabdil.id_shali = Factor_F_T.id_shali ", ol_cn)
Factor_F_T.id_shali یه فیلده از یه جدول دیگه.
از زحمتت ممنونم ولی دقت کن
دوستان تو update میشه شرط برابری دو فیلد از دو جدول مختلف قرار داد؟
مثل:UPDATE A_Tabdil SET raft = false WHERE A_Tabdil.id_shali = Factor_F_T.id_shali
شما برای این کار باید نام جدول ها و فیلد ها رو در کوئری دقیقآ مشخص کنید:
UPDATE Table1,Table2
SET Table1.name = "AAAAAA"
WHERE Table1.ID=Table2.ID
تا حالا کسی به این مشکل بر نخورده؟
دیدم این تاپیک وجود دارد منم سوالم رو اینجا مطرح می کنم .
من در Update مشکل دارم .
این دستورات Update من هست :
Cmd = New OleDbCommand("UPDATE [Order] set [Name] = '" & TxtName.Text & "',[Age] = '" & TxtAge.Text & "',[Job] = '" & Job & "',[Date] = '" & TxtDate.Text & "',[Tel] = '" & TxtTel.Text & "',[OrderHistory] = '" & OrderHistory & "',[BecauseResort] = '" & TxtBecauseResort.Text & "',[HistoryIllness] = '" & HistoryIllness & "',[Result] = '" & TxtResult.Text & "',[Medicine] = '" & TxtMedicine.Text & "',[ResultVisit] = '" & TxtResultVisit.Text & "' WHERE [FileNumber] = '" & TxtFileNumber.Text & "'", Cn)
Cmd.ExecuteNonQuery()
همچین Error می ده :
No value given for one or more required parameters
به خط Cmd.ExecuteNonQuery() گیر میده .
و یه سوال می خوام بدونم چه جوری می تونم اطلاعات رو از بانک بخونم که اگر ارتباط بسته بود بتونه اطلاعات رو بگیره . من اطلاعات رو اینجوری می گیرم .
Cmd = New OleDbCommand("Select * from [Order] where [FileNumber] = " & Chr(34) & FileNumber & Chr(34), Cn)
DR = Cmd.ExecuteReader
DR.Read()
TxtName.Text = DR("Name")
باتشکر احسان
بله که میشه ::لبخند:
اگه A_Tabdil جدول شماره 1 و factor_f_t جدول شماره 2 باشه آنگاه :
UPDATE A_Tabdil SET A_Tabdil.raft= false WHERE A_Tabdil.id_shali =Factor_F_T.id_shali
-------------------------------------------------------------مشکل اینجا بود-------------------------
دوست عزيز Sanaz13X!
اميدوارم كه صاحب تاپيك، از دست شما ناراحت نشه!
شما بجاي اينكه تمامي كدتون را در يك خط بنويسيد، از پارامترها استفاده كنيد! (همانند پست شماره 3 و 6 از Mr Kablayi در همين تاپيك)
آیا نمی شه کاری کرد که از پارامتر استفاده نکنم و همه چی در کد SQL قرار گیرد ؟
این سوال هم جواب دهید .
و یه سوال می خوام بدونم چه جوری می تونم اطلاعات رو از بانک بخونم که اگر ارتباط بسته بود بتونه اطلاعات رو بگیره . من اطلاعات رو اینجوری می گیرم .
Cmd = New OleDbCommand("Select * from [Order] where [FileNumber] = " & Chr(34) & FileNumber & Chr(34), Cn)
DR = Cmd.ExecuteReader
DR.Read()
TxtName.Text = DR("Name")
باتشکر احسان
به نام خدا
با سلام
این جواب دوستمان saman_itc می باشد.
البته شاید الان بدردشان نخوره ولی شاید برای دیگر دوستان مفید باشه.
update t1,t2 set raft=false where t1.f=t2.f
حالت کلی هم این می باشد که باید اسم هر جدولی که می خواهیم استفاده کنیم
رو در اول بیاوریم.
البته من این کد رو در اکسس امتحان کردم و در دات نت نه اون با شما.