PDA

View Full Version : مشکل در insert



mohsen_zelzela00
دوشنبه 14 مرداد 1387, 13:09 عصر
با سلام خدمت دوستان عزیز
من در حال نوشتن یک نرم افزار برای یه اداره ای هستم ولی وقتی در قسمت insert کد زیر رو مینویسم



' Try
Dim cn As New connection
Dim str As String
str = "insert into information_ras values(@t1,@t2,@t3,@t4,@t5,@t6,@t7,@t8,@t9,@t10,@t 11,@t12,@t13,@t14,@t15,@t16,@t17,@t18,@t19,@t20,@t 21,@t22,@t23,@t24,@t25,@t26,@t27,@t28,@t29,@t30,@t 31,@t32,@t33,@t34,@t35,@t36,@t37)"
str1 = Me.ComboBox1.SelectedItem
str2 = Me.ComboBox2.SelectedItem
Dim cmd As New SqlCommand(str)
cmd.Connection = cn.cn
cmd.Parameters.AddWithValue("@t1", TextBox1.Text)
cmd.Parameters.AddWithValue("@t2", TextBox2.Text)
cmd.Parameters.AddWithValue("@t3", TextBox3.Text)
cmd.Parameters.AddWithValue("@t4", Textbox4.Text)
cmd.Parameters.AddWithValue("@t5", TextBox5.Text)
cmd.Parameters.AddWithValue("@t6", TextBox6.Text)
cmd.Parameters.AddWithValue("@t7", Me.MaskedTextBox1.Text)
cmd.Parameters.AddWithValue("@t8", TextBox8.Text)
cmd.Parameters.AddWithValue("@t9", str1)
cmd.Parameters.AddWithValue("@t10", Textbox10.Text)
cmd.Parameters.AddWithValue("@t11", Textbox11.Text)
cmd.Parameters.AddWithValue("@t12", Textbox12.Text)
cmd.Parameters.AddWithValue("@t13", Textbox13.Text)
cmd.Parameters.AddWithValue("@t14", TextBox14.Text)
cmd.Parameters.AddWithValue("@t15", Me.MaskedTextBox2.Text)
cmd.Parameters.AddWithValue("@t16", Textbox16.Text)
cmd.Parameters.AddWithValue("@t17", TextBox17.Text)
cmd.Parameters.AddWithValue("@t18", Me.TextBox20.Text)
cmd.Parameters.AddWithValue("@t19", TextBox19.Text)
cmd.Parameters.AddWithValue("@t20", str2)
cmd.Parameters.AddWithValue("@t21", Textbox21.Text)
cmd.Parameters.AddWithValue("@t22", Textbox22.Text)
cmd.Parameters.AddWithValue("@t23", Textbox23.Text)
cmd.Parameters.AddWithValue("@t24", Textbox24.Text)
cmd.Parameters.AddWithValue("@t25", TextBox25.Text)
cmd.Parameters.AddWithValue("@t26", TextBox26.Text)
cmd.Parameters.AddWithValue("@t27", TextBox27.Text)
cmd.Parameters.AddWithValue("@t28", TextBox28.Text)
cmd.Parameters.AddWithValue("@t29", TextBox29.Text)
cmd.Parameters.AddWithValue("@t30", TextBox30.Text)
cmd.Parameters.AddWithValue("@t31", TextBox31.Text)
cmd.Parameters.AddWithValue("@t32", TextBox32.Text)
cmd.Parameters.AddWithValue("@t33", TextBox33.Text)
cmd.Parameters.AddWithValue("@t34", TextBox34.Text)
cmd.Parameters.AddWithValue("@t35", TextBox35.Text)
cmd.Parameters.AddWithValue("@t36", TextBox36.Text)
cmd.Parameters.AddWithValue("@t37", "ÑÓãی")
cn.open()
cmd.ExecuteNonQuery()
cn.close()

'Catch ex As Exception
' Dim b As Integer
'b = Err.Number
'If b = 5 Then
'fr_err.Label1.Text = "äیä јæÑÏی ÞÈáÇð ËÈÊ ÔÏå ÇÓÊ"
' fr_err.Show()
'Else
' MsgBox("")
' End If
'Eg_err.Label1.Text = Err.Number
'Eg_err.Show()
' End Try




error زیر رو میده
Message="Prepared statement '(@t1 nvarchar(4),@t2 nvarchar(4),@t3 nvarchar(4000),@t4 nvarchar' expects parameter @t9, which was not supplied
جالب اینجاست که نوع فیلدهای جدول من از نوع char است دوستان اگه بتونن من رو راهنمایی کنن خیلی ممنون میشم در ضمن اول که این کد رو نوشتم درست کار میداد ولی دو روزی هست که اشکال میگیره و وقتی این رو دوباره نوشتم دوباره ایراد گرفت

morteza_261
دوشنبه 14 مرداد 1387, 13:48 عصر
سلام
لطف کدهایتان را در تگ کد قرار دهید:


Dim cn As New connection
Dim str As String
str = "insert into information_ras values(@t1,@t2,@t3,@t4,@t5,@t6,@t7,@t8,@t9,@t10,@t 11,@t12,@t13,@t14,@t15,@t16,@t17,@t18,@t19,@t20,@t 21,@t22,@t23,@t24,@t25,@t26,@t27,@t28,@t29,@t30,@t 31,@t32,@t33,@t34,@t35,@t36,@t37)"
str1 = Me.ComboBox1.SelectedItem
str2 = Me.ComboBox2.SelectedItem
Dim cmd As New SqlCommand(str)
cmd.Connection = cn.cn
cmd.Parameters.AddWithValue("@t1", TextBox1.Text)
cmd.Parameters.AddWithValue("@t2", TextBox2.Text)
cmd.Parameters.AddWithValue("@t3", TextBox3.Text)
cmd.Parameters.AddWithValue("@t4", Textbox4.Text)
cmd.Parameters.AddWithValue("@t5", TextBox5.Text)
cmd.Parameters.AddWithValue("@t6", TextBox6.Text)
cmd.Parameters.AddWithValue("@t7", Me.MaskedTextBox1.Text)
cmd.Parameters.AddWithValue("@t8", TextBox8.Text)
cmd.Parameters.AddWithValue("@t9", str1)
cmd.Parameters.AddWithValue("@t10", Textbox10.Text)
cmd.Parameters.AddWithValue("@t11", Textbox11.Text)
cmd.Parameters.AddWithValue("@t12", Textbox12.Text)
cmd.Parameters.AddWithValue("@t13", Textbox13.Text)
cmd.Parameters.AddWithValue("@t14", TextBox14.Text)
cmd.Parameters.AddWithValue("@t15", Me.MaskedTextBox2.Text)
cmd.Parameters.AddWithValue("@t16", Textbox16.Text)
cmd.Parameters.AddWithValue("@t17", TextBox17.Text)
cmd.Parameters.AddWithValue("@t18", Me.TextBox20.Text)
cmd.Parameters.AddWithValue("@t19", TextBox19.Text)
cmd.Parameters.AddWithValue("@t20", str2)
cmd.Parameters.AddWithValue("@t21", Textbox21.Text)
cmd.Parameters.AddWithValue("@t22", Textbox22.Text)
cmd.Parameters.AddWithValue("@t23", Textbox23.Text)
cmd.Parameters.AddWithValue("@t24", Textbox24.Text)
cmd.Parameters.AddWithValue("@t25", TextBox25.Text)
cmd.Parameters.AddWithValue("@t26", TextBox26.Text)
cmd.Parameters.AddWithValue("@t27", TextBox27.Text)
cmd.Parameters.AddWithValue("@t28", TextBox28.Text)
cmd.Parameters.AddWithValue("@t29", TextBox29.Text)
cmd.Parameters.AddWithValue("@t30", TextBox30.Text)
cmd.Parameters.AddWithValue("@t31", TextBox31.Text)
cmd.Parameters.AddWithValue("@t32", TextBox32.Text)
cmd.Parameters.AddWithValue("@t33", TextBox33.Text)
cmd.Parameters.AddWithValue("@t34", TextBox34.Text)
cmd.Parameters.AddWithValue("@t35", TextBox35.Text)
cmd.Parameters.AddWithValue("@t36", TextBox36.Text)
cmd.Parameters.AddWithValue("@t37", "ÑÓãی")
cn.open()
cmd.ExecuteNonQuery()
cn.close()

بعد هم اینکه فیلد ها رو با nvarchar امتحان کردی؟؟؟

mohsen_zelzela00
دوشنبه 14 مرداد 1387, 16:16 عصر
سلام
بعد هم اینکه فیلد ها رو با nvarchar امتحان کردی؟؟؟
بله دوست عزیز با nvarchar هم امتحان کردم ولی نشد گفتم که جالبیش اینه که قبلاً کار میکرد ولی الان کار نمی کنه و وقتی که کد رو دوباره تو یه پرژه دیگه مینویسم دوباره همین error رو میده

parsavb
سه شنبه 15 مرداد 1387, 07:12 صبح
مشکل یا از کانکشن و یا از بانک شماست نه از کدتون بهتره بانکتون رو چک کنید

mohsen_zelzela00
سه شنبه 15 مرداد 1387, 20:16 عصر
مشکل یا از کانکشن و یا از بانک شماست نه از کدتون بهتره بانکتون رو چک کنید

نه دوست عزیز فکر نکنم اشکال از بانک من باشه چون این نرم افزار قبلاً کار میکرد اگه مشکل از بانک باشه که اصلاً کار نمی کرد

من سعی میکنم بانکم رو هم تا فردا بزارم تا دوستان نظر بدن

ali_reza_nazari
چهارشنبه 16 مرداد 1387, 00:46 صبح
دوتا چيز
يكي اينكه توي
cmd.Parameters.AddWithValue("@t32", TextBox32.Text)
نيازي به علامت @ نيست
دوم اينكه داره از مقدار پارامتر T9 ايراد مي گيره پس مقدارش رو هم چك كن چون ممكنه منفي باشه
سوم اينكه ممكنه شما ساختار فيلدها رو ويرايش كرده باشيد و يا فيلدي رو اضافه و كم كرده باشد
بنابراين بهترين راه حل ابن هست كه اينطوري بنويسي

insert into .....
(field1 , field2 , .....)
values
(@field1 , @field2 , ...)

اينطوري مطمئني كه هر مقداري درست سرجاي خودش قرار مي گيره

mohsen_zelzela00
چهارشنبه 16 مرداد 1387, 19:06 عصر
دوتا چيز
يكي اينكه توي
cmd.Parameters.AddWithValue("@t32", TextBox32.Text)
نيازي به علامت @ نيست

خدایی من تا حالا اینو ندیدم و وقتی اینجوری کد مینویسم اصلاً error میده


دوم اينكه داره از مقدار پارامتر T9 ايراد مي گيره پس مقدارش رو هم چك كن چون ممكنه منفي باشه

دوست عزیز من در بالا هم گفتم که قبلاً این برنامه کار میکرد و الان کار نمیکنه دوماً اینه که اگه به کدها نگاه کنید میبینید که مقدار combobox در یه متغیر به نام str ذخیره میشه و سپس str به @t9 ست میشه پس مقداره وارده هم درسته

mohsen_zelzela00
چهارشنبه 16 مرداد 1387, 19:09 عصر
دوستان من database رو هم میزارم تا اگه ایرادی داشت بهم بگید ممنون میشم

دانلود (http://pcpionners.com/database1.rar)

ali_reza_nazari
پنج شنبه 24 مرداد 1387, 13:55 عصر
دانلود نميشه