PDA

View Full Version : سوال: اصلاح کد(فوری)



ms_raha
سه شنبه 24 آذر 1388, 21:55 عصر
سلام
من یک کد برای ویرایش جدول نوشتم ولی جواب نمی دهد
در این برنامه شماره دانشجویی را در text2 وارد می کنیم و از combobox یکی از فیلد های جدول را انتخاب می کنیم که مقدار آن فیلد انتخاب شده را در text1 وارد می کنیم

Dim constr As String = "Data Source=MARYAM-414ACB1A\SQLEXPRESS;Initial Catalog=maryam;Integrated Security=True;Pooling=False"
Dim con3 As SqlConnection = New SqlConnection(constr)
Try
con3.Open()
Dim cmdstr2 As String = "update students set '" + ComboBox1.SelectedItem + "'='" + TextBox1.Text + "' where id='" + TextBox2.Text + "' "
Dim cmd As SqlCommand = New SqlCommand(cmdstr2, con3)

cmd.ExecuteNonQuery()

Label4.Text = "succ"
Catch ex As Exception
Label4.Text = ex.Message
Finally
con3.Close()
End Try

viper2009
سه شنبه 24 آذر 1388, 23:37 عصر
اولاً که از خود ComboBox.Text می تونی استفاده کنی

ولی در آخه محتوی Text1 داخل کدام فیلد می شود آخه؟

مثلاً در دیتا بیست اگر دوتا فیلد داشته باشی به نامهای فیلد 1 و فیلد 2

مقدار فیلد1 از تکست 1 و مقدار فیلد 2 از تکست 2 به روز یا ویرایش خواهند شد.

ms_raha
سه شنبه 24 آذر 1388, 23:51 عصر
در فرم دو تا text و یک combo (شامل فیلد های جدول) است مثلا در text1 شماره دانشجویی را 1 وارد می کنیم و از combo فیلد name را انتخاب می کنیم و در text2 علی را وارد می کنیم که در اینصورت نام دانشجویی با شماره ی 1 به علی تغییر می کند.

ms_raha
چهارشنبه 25 آذر 1388, 11:36 صبح
لطفا یکی جواب بده فوری

pourang_us
چهارشنبه 25 آذر 1388, 11:55 صبح
دوست عزیز
درود
خطایی رو که ازت میگیره رو بذار اینجا
دقیقا اون مقداری رو که توی Catch میگیری رو من فکر میکنم Syntax Error بیشتر میتونه باشه
مگر اینکه فیلدی رو که میخوای تغییر بدی در جدول دیگری به کار برده باشی (کلید خارجی یه جدول دیگه باشه)


موفق باشی

arsalansalar
چهارشنبه 25 آذر 1388, 12:40 عصر
اشكال از اينجاست:

set '" + ComboBox1.SelectedItem + "'='" + TextBox1.Text + "'
دستور try و بردار بببين از كدوم خط خطا مي گيرد .

viper2009
چهارشنبه 25 آذر 1388, 13:29 عصر
در فرم دو تا text و یک combo (شامل فیلد های جدول) است مثلا در text1 شماره دانشجویی را 1 وارد می کنیم و از combo فیلد name را انتخاب می کنیم و در text2 علی را وارد می کنیم که در اینصورت نام دانشجویی با شماره ی 1 به علی تغییر می کند.

این سوالت را در تاپیک دیگر کرده بودی؟

ولی آخه معلوم نیست می خوای بجای شماره نام ویرایش شود یا اینکه در دو فیلد جداگانه؟
برای اولی که در تاپیک قبلی تون یک مثال آقای Saadi2 ارائه کرده بود
ولی برای دومی می بایست یک فیلد دومی هم داشته باشی.

ms_raha
چهارشنبه 25 آذر 1388, 17:32 عصر
اینکه فیلدهای کدام دانشجو ویرایش شود را در text2 مشخص می کنم
اینکه کدام فیلد ویرایش شود را از combo انتخاب می کنم
و اینکه عبارت جایگزین چی باشد را در text1 مشخص می کنم
کد زیر را هم نوشتم error نمی ده ولی جواب نمیدهد

Dim constr As String = "Data Source=MARYAM-414ACB1A\SQLEXPRESS;Initial Catalog=maryam;Integrated Security=True;Pooling=False"
Dim con3 As SqlConnection = New SqlConnection(constr)
Try
con3.Open()
Dim cmdstr2 As String = "update students set @n1='" + TextBox1.Text + "' where id='" + TextBox2.Text + "' "
Dim cmd As SqlCommand = New SqlCommand(cmdstr2, con3)
Dim param1 As SqlParameter = cmd.Parameters.Add("@n1", SqlDbType.Char)
param1.Value = ComboBox1.SelectedItem
cmd.ExecuteNonQuery()

Label4.Text = "succ"
Catch ex As Exception
Label4.Text = ex.Message
Finally
con3.Close()
End Try

saadi2
چهارشنبه 25 آذر 1388, 20:42 عصر
فکر کنم منظورتو فهمیدم

این دیگه باید مشکلتو حل کنه

ms_raha
چهارشنبه 25 آذر 1388, 23:30 عصر
لطفا کد را اینجا بگذارید
ممنون

davood-ahmadi
چهارشنبه 25 آذر 1388, 23:40 عصر
من فکر کنم کدتون در این خط ایراد دارد
معمولاً اول نام فیلد را می گن بعد پارامتر تعریف می کنن در حالیکه شما برعکس انجام دادید:

Dim cmdstr2 As String = "update students set @n1='" + TextBox1.Text + "' where id='" + TextBox2.Text + "' "

ms_raha
چهارشنبه 25 آذر 1388, 23:51 عصر
فایل رو تونستم باز کنم لازم نیست دیگه کد را بگذارید
ممنون از شما تونستم جواب بگیرم

saadi2
پنج شنبه 26 آذر 1388, 01:25 صبح
Imports System.Data.OleDb
Public Class Form1
Dim Da As New OleDbDataAdapter
Dim com As New OleDbCommand
Dim con As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source = Student.mdb")
Dim Ds As New DataSet
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
fill()
Fill_Combo()
End Sub
Sub Open_con()
If con.State = ConnectionState.Open Then con.Close()
con.Open()
End Sub
Sub fill()
Ds = New DataSet
Open_con()
Da = New OleDbDataAdapter("select * from info", con)
Da.Fill(Ds, "info")
con.Close()
Me.DataGridView1.DataSource = Ds.Tables("info")
End Sub
Sub Fill_Combo()
Try
With ComboBox1
.DataSource = Ds.Tables("info")
.DisplayMember = "name"
.ValueMember = "id"
End With
Catch ex As Exception
End Try
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Try
Open_con()
com = New OleDbCommand("update info set " + ComboBox2.Text + "='" + TextBox1.Text _
+ "' where id=" + ComboBox1.SelectedValue.ToString, con)
com.ExecuteNonQuery()
con.Close()
fill()
Fill_Combo()
MsgBox("ثبت شد")
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
End Class