معادل این دستور چیه؟
'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 این کارو کرد؟؟؟؟؟؟؟؟؟؟؟؟
معادل این دستور چیه؟
'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()
آخرین ویرایش به وسیله kablayi : سه شنبه 24 اردیبهشت 1387 در 17:06 عصر
فکر کنم خیلی واضح باشه ...
اون بالا نحوه اضافه کردن پارامتر به 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 استفاده کنی ...
فکر کنم کافی باشه ...
اگر سوال دیگه ای داشتی در خدمتیم ...
موفق باشی...
آخرین ویرایش به وسیله kablayi : چهارشنبه 25 اردیبهشت 1387 در 03:03 صبح
جدی؟
من 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")
باتشکر احسان
دوست عزيز 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
حالت کلی هم این می باشد که باید اسم هر جدولی که می خواهیم استفاده کنیم
رو در اول بیاوریم.
البته من این کد رو در اکسس امتحان کردم و در دات نت نه اون با شما.