PDA

View Full Version : این پیغام یعنی چی؟(binding)



m_zamani
پنج شنبه 26 بهمن 1385, 09:31 صبح
این پیغام یعنی جی؟
This causes two bindings in the collection to bind to the same property.
Parameter name: binding

leilav_1984
پنج شنبه 26 بهمن 1385, 09:47 صبح
احتمالا یه چیزی به 2 تا فیلد داده bind شده
این خطا رو چه خطی میده؟

m_zamani
پنج شنبه 26 بهمن 1385, 09:52 صبح
namo.DataBindings.Add(New Binding("Text", EnterDataSet1, "enter.name"))

programmermp
پنج شنبه 26 بهمن 1385, 10:31 صبح
namo.DataBindings.Add(New Binding("Text", EnterDataSet1, "enter.name"))


سلام

کد زیر رو قبل از این خط بنویس حله



namo.databindings.clear


موفق باشید

m_zamani
پنج شنبه 26 بهمن 1385, 10:43 صبح
Private Sub Code_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Code.SelectedIndexChanged
Dim cm As SqlClient.SqlCommand
na = Code.SelectedItem
strsql = "Select * From enter where code=" & na
cm = New SqlClient.SqlCommand(strsql, con)
cm.ExecuteNonQuery()
namo.DataBindings.Clear()
namo.DataBindings.Add("Text", EnterDataSet1, "enter.name")
End Sub

این کد مشکلش چیه؟
فقط من مقدار برگشتی دستور select رو نمیدونم چطوری بریزم توی dataset


dataadapter.fill(dataset,"table")

اینو که میذارم خطا میگیره

programmermp
پنج شنبه 26 بهمن 1385, 10:59 صبح
strsql = "Select * From enter where code=" & na



نام جدول شما در کد بالا enter هست ولی در کدی که گذاشتید و می گید

خطا داره نام جدول رو table گذاشتید چک کن ببین مشکل از اینه یا نه

اگه نباشه دیگه نباید خطا داشته باشه

m_zamani
پنج شنبه 26 بهمن 1385, 11:02 صبح
نه اینو درست گذاشتم،
اینجا بطور کلی گفتم
اما بازم پیغام میده، کلافه شدم
Object reference not set to an instance of an object

programmermp
پنج شنبه 26 بهمن 1385, 11:18 صبح
نه اینو درست گذاشتم،
اینجا بطور کلی گفتم
اما بازم پیغام میده، کلافه شدم
Object reference not set to an instance of an object

سلام
پیغامی که نوشتی به نحوه تعریف دیتا ادپتر بر می گرده

باید مثل زیر تعریف کرده باشی




dim dataadapter as new sqlclient.dataadapter
dataadapter=new sqlclient.dataadapter(strsql,con)
که con متغیر کانکشن بوده و strsql هم دستور سلکت هست

m_zamani
پنج شنبه 26 بهمن 1385, 11:32 صبح
Private Sub Code_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Code.SelectedIndexChanged
Dim cm As SqlClient.SqlCommand
na = Code.SelectedItem
strsql = "Select * From enter where code=" & na
cm = New SqlClient.SqlCommand(strsql, con)
cm.ExecuteNonQuery()
da = New SqlClient.SqlDataAdapter(strsql, con)
da.Fill(EnterDataSet1)
namo.DataBindings.Clear()
namo.DataBindings.Add("Text", EnterDataSet1, "enter.name")
End Sub


حالا هیچ کار نمیکنه
پیغام هم نمیده

programmermp
پنج شنبه 26 بهمن 1385, 11:36 صبح
PrivateSub Code_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Code.SelectedIndexChanged
Dim cm As SqlClient.SqlCommand
na = Code.SelectedItem
strsql = "Select * From enter where code=" & na
cm = New SqlClient.SqlCommand(strsql, con)
cm.ExecuteNonQuery()
da = New SqlClient.SqlDataAdapter(strsql, con)
da.Fill(EnterDataSet1)
namo.DataBindings.Clear()
namo.DataBindings.Add("Text", EnterDataSet1, "enter.name")
EndSub


حالا هیچ کار نمیکنه
پیغام هم نمیده

خطی که پر رنگ کردم اشکال داره برای همینه که جواب نمی ده



da.fill(enterdataset1,"enter")

m_zamani
پنج شنبه 26 بهمن 1385, 11:40 صبح
Failed to enable constraints. One or more rows contain values violating non-null, unique, or foreign-key constraints.

حالا اینو میده

m_zamani
شنبه 28 بهمن 1385, 08:25 صبح
سلام
یکی بگه این پیغام یعنی چی؟

m_zamani
شنبه 28 بهمن 1385, 13:47 عصر
Private Sub Code_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Codo.SelectedIndexChanged
Dim cm As SqlClient.SqlCommand
na = Codo.SelectedItem
strsql = "Select * From enter where code=" & na
cm = New SqlClient.SqlCommand(strsql, con)
cm.ExecuteNonQuery()
da = New SqlClient.SqlDataAdapter(strsql, con)
EnterDataSet1.Clear()
da.Fill(EnterDataSet1, "enter")
namo.DataBindings.Clear()
namo.DataBindings.Add("Text", EnterDataSet1, "enter.name")
End Sub


الان هم هیچ کاری انجام نمیده، مگه نباید بایند کن؟

m_zamani
شنبه 28 بهمن 1385, 14:03 عصر
cm.ezecutedreader
رو گذاشتم
اینبار این پیغام رو میده
There is already an open DataReader associated with this Command which must be closed first.

programmermp
شنبه 28 بهمن 1385, 18:21 عصر
سلام

تو این پیغام خیلی واضح گفته که دیتا ریدر باز هست قبل از اینکه بازش کنی دوباره اول

ببندش

احتمال دوبار پشت سرهم داری دیتا ریدر رو باز می کنی

اگه مشکل این نیست قبل از اینکه دیتاریدر رو باز کنی یک بار close کن

m_zamani
یک شنبه 29 بهمن 1385, 11:49 صبح
من از dataadapter استفاده کردم که close نداره

programmermp
یک شنبه 29 بهمن 1385, 12:22 عصر
من از dataadapter استفاده کردم که close نداره
سلام

معلومه که نداره

مگر از connection استفاده نکردی

خوب باید قبل از اجرای دستور موجود در strsql کانکشن رو open کنی و در اخرین خط هم

ان را close کنی

مثلا فرض کن



dim con as new sqlclient.connection
con=new sqlclient.connection(strcon)
strcon کانکشن هست
con.open
دستورات
con.close

اگه دیدی باز هم همون پیغام رو میده اول یک بار close کن بعد open کن

موفق باشید

m_zamani
یک شنبه 29 بهمن 1385, 12:39 عصر
من conection رو میبندم و دوباره open می کنم اما باز هم همینو میگه

programmermp
یک شنبه 29 بهمن 1385, 13:01 عصر
من conection رو میبندم و دوباره open می کنم اما باز هم همینو میگه



cmd.executenonquery
رو برشدار نیازی بهش نیست

در ضمن کد زیر رو هم

namo.DataBindings.Add("Text", EnterDataSet1, "enter.name")

به صورت زیر بنویس

namo.DataBindings.Add(new binding("Text", EnterDataSet1, "enter.name"))


ببین اگه مسنجر داری بیا با مسنجر ادامه بده تا زود تر بتونیم رد و بدل کنیم اطلاعات رو

وقتی به نتیجه رسیدم برای اطلاع دیگر دوستان جواب رو توی تاپیک می زاریم

خوب

ای دی من هم salehi_programmer@yahoo.com

موفق باشید

m_zamani
یک شنبه 29 بهمن 1385, 13:37 عصر
con.Close()
con.Open()
Dim cm1 As SqlClient.SqlCommand
na = Codo.SelectedItem
strsql1 = "Select * From enter where code=" & na
cm1 = New SqlClient.SqlCommand(strsql1, con)
cm1.ExecuteReader()
ad = New SqlClient.SqlDataAdapter(strsql1, con)
EnterDataSet1.Clear()
ad.Fill(EnterDataSet1, "enter")
namo.DataBindings.Clear()
namo.DataBindings.Add(New Binding("Text", EnterDataSet1, "enter.name"))

این هنوز هم همون پیغام قبلی رو میده