PDA

View Full Version : bindinf كردن كمك



afshindelphikar
سه شنبه 09 مهر 1387, 20:24 عصر
سلام
من يه كامبو باكس دارم كه ركوردهاي يك فيلد را توش دارم و ميخواستم موقعي كه يك ركورد را انتخاب مي كنيم بفيه ركوردهارو تو چندتا textbox نشون بده واسه همينم از اين كد در evente combobox استفاده كرد م

strSql = "select * from input where mark='"+comboBox4.Text+"'";
con = new SqlConnection(strCon);
con.Open();
da = new SqlDataAdapter(strSql, con);
da.Fill(ds, "input");
textBox1.DataBindings.Add(new Binding("Text", ds, "input.mark"));
textBox2.DataBindings.Add(new Binding("Text", ds, "input.no"));
textBox4.DataBindings.Add(new Binding("Text", ds, "input.code"));
con.Close();
ولي با انتخاب يه ركورد يه پيغام خطا ميده كه خيلي حالمو ميگيره :گریه:يه جورايي كل برنامم با شكست روبرو ميشه البته ميشه با ويزارد اين كارو كرد ولي از ويزارد تو برنامم استفاده نكردم
و نميخوام بكنم از يه راهه ديگه هم هست فكر كنم بشه اين كارو كرد اونم با انتخاب خانه هاي datagridview ولي زياد جالب نيست قشنگ نيست. اينم پيغام خطايي كي ميده :

error:
ArgumentExeption was unhandled

{This causes two bindings in the collection to bind to the same property.
Parameter name: binding }
آيا واسه اين كار راهه ديگه اي هم هست ممنون ميشم لطفا كمكم كنيد من اين كارو واسه update كردن ميخوام

majid325
چهارشنبه 10 مهر 1387, 07:37 صبح
قبل از بايند كردن بايد اين متد رو صدا بزني:

textBox1.DataBindings.Clear()

input.code اسم فيلدت هست يا اسم جدول + فيلد؟

روش صحيح بايند كردن:

textBox1.DataBindings.Add("text",اسم فيلد ,اسم ديتا سورس)

afshindelphikar
چهارشنبه 10 مهر 1387, 17:59 عصر
قبل از بايند كردن بايد اين متد رو صدا بزني:

textBox1.DataBindings.Clear()

input.code اسم فيلدت هست يا اسم جدول + فيلد؟

روش صحيح بايند كردن:

textBox1.DataBindings.Add("text",اسم فيلد ,اسم ديتا سورس)

راستي تونسم با استفاده از ديتا گريد هم اين كارو كنم ولي يكمي كلاسش پايينه ولي كارو راه مي ندازه.

afshindelphikar
پنج شنبه 11 مهر 1387, 19:42 عصر
ديگه اون پيغام خطا رو نميده ولي فقط يكي از ركوردهارو نشون ميده . مي خوام وقتي به ركوردي رو از كاموباكس انتخاب كنم بقيه ركوردهارو هم درون چندتا تكست باكس يا ليبل نشون بده در ضمن از كد شما هم استفاده كردم فكر كنم اشتباهه بايد حتما قبل از فيلد اسم جدولمون رو هم نوشت مثل اين :
input.name
اگر يه مثالي ميزدي خوب بود .

majid325
جمعه 12 مهر 1387, 07:30 صبح
ضمن از كد شما هم استفاده كردم فكر كنم اشتباهه بايد حتما قبل از فيلد اسم جدولمون رو هم نوشت مثل اين :
input.name
اگر يه مثالي ميزدي خوب بود .

كد 100% مشكلي نداره ، ممكن مشكل جايه ديگه باشه.

شما با يك ديتاسورس نميتوني چند ركورد رو در txb يا كنترل هايي از اين قبيل نشون بدي، اگه ميخواي با يه ديتاسورس چند ركورد رو نشون بدي بهترين كنترل همون گيريد هست.

چيزي كه تو سايت زياده مثاله ، منم سرم يه خورده شلوغ شده اگه چيزه جالبي گير نياوردي ، نمونه برنامتو بزار اينجا تا رو اون برات مثال بزنم.

afshindelphikar
جمعه 12 مهر 1387, 10:09 صبح
من ميخوام فيلداي ديگشو توي txp نشون بدم مثلا نامو انتخاب كنم از كمبوباكس بعد درون چندت تكستباكس فاميلي و غيره هالا هرچي نشون بده.با ويزارد اين كار راحته فقط كافيه از ديتاسورس اونارو بكشيم تو فرم و رها كنيم اگه اشتباه نكنم drag drop ميگن. ولي الان فعلا از جدولم دارم استفاده مي كنم يعني روي هر خانه جدول كه كليك مي كنم تمام روكوردهاي ايون سطرارو ميبرم به تكست باكسا و بعدش از درون تكست باكس هر كدومشو كه خواستم تغيير ميدم وبعدشم عمليات آپديت . زياد خوشم نمياد از تو خ.د جدول آپديت كنم يكمي بي كلاسيه به نظرم به هر حال مرسي دستت درد نكنه حالا ميرم يكمي باهاش ور ميرم شايد بشه