PDA

View Full Version : انتخاب آیتم بایند شده به comboBox



merlin_vista
شنبه 24 آذر 1386, 11:52 صبح
آقا من به صورت زیر اطلاعات ام را از بانک به کومبوباکس بایند میکنم :

OleDbDataAdapter dat = new OleDbDataAdapter("select * from TB_Melk", con);
dat.SelectCommand.CommandType = CommandType.Text;
DataSet dst=new DataSet();
dat.Fill(dst, "Melk");
this.comboBox1.DataSource = dst.Tables["Melk"].DefaultView;
this.comboBox1.DisplayMember = "Name";

حالا به این صورت میخواهم آیتم انتخاب شده را در بانک ذخیره کنم :

cmd.Parameters.AddWithValue("@nama", this.comboBox1.SelectedItem.ToString());

ولی چیزی که در بانک ذخیره میشه اینه :

System.Data.DataRowView

میشه بگید باید چه کار کنم که نام انتخاب شده در بانک ذخیره شود :گریه:

babak23
شنبه 24 آذر 1386, 12:34 عصر
به این صورت تغییر بده


cmd.Parameters.AddWithValue("@nama", this.comboBox1.Selectedtext.ToString());


یا به این صورت



cmd.Parameters.AddWithValue("@nama", this.comboBox1.Selectedvalue.ToString());


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



cmd.Parameters.AddWithValue("@nama", this.comboBox1.text.ToString());

سار
شنبه 24 آذر 1386, 12:54 عصر
استفاده از
this.comboBox1.Selectedvalue توصیه میشه.

beh_develop
شنبه 24 آذر 1386, 13:15 عصر
کافیه از ValueMemeber به جای DisplayMember استفاده کنین و هنگام خواندن مقدار از SelectedValue.Tostring() استفاده کنین

amirafshari
دوشنبه 12 تیر 1391, 18:17 عصر
کافیه از ValueMemeber به جای DisplayMember استفاده کنین و هنگام خواندن مقدار از SelectedValue.Tostring() استفاده کنین

سلام .ببخشید من وسط نقل قول هاتون میام
من کد زیر رو توی VB.NET نوشتم:
Private Function combo_fill()

Dim sqlcmd As New SqlCommand
Dim ds As New DataSet
Dim sda As New SqlDataAdapter

ConnectToBank()
sqlcmd.CommandType = CommandType.StoredProcedure
sqlcmd.CommandText = "SP_ShowAllNames"
sqlcmd.Connection = CN
sda.SelectCommand = sqlcmd
sda.Fill(ds, "karkerd")

ComboBox1.DataSource = ds.Tables("karkerd")
ComboBox1.DisplayMember = "name"
ComboBox1.ValueMember = "personalcode"

TextBox1.Text = ComboBox1.SelectedValue.ToString

End Function
اما از خط "ComboBox1.ValueMember = "personalcode ایراد میگیره و خطای زیر رو میده :
Cannot bind to the new value member. Parameter name: value

میتونین کمکم کنین؟
دفعه اول کار کرد اما دفعات بعدی هر کاری کردم جواب نداد.ممنونم

beh_develop
دوشنبه 12 تیر 1391, 18:39 عصر
سلام
فیلد personalcode حتما یا وجود نداره یا اشتباهی نوشتی.

stored procedure رو هم تو محیط sql اجرا کن ببین این ستون رو تو نتیجش نشون می ده یا نه؟

می تونی قبل دستوری که خطا می ده Break Point بزاری و اسامی ستون های جدولس داخل دیتاست هست رو چک کنی

Mahmoud.Afrad
دوشنبه 12 تیر 1391, 18:46 عصر
آقا امیر این تاپیک برای سال 86 هستا !!!!

اگر میخوای مشکلت حل بشه تاپیک جدید بزن در ضمن محتوای استورپروسیجر رو هم قرار بده.(البته در تالار VB.NET یا اینکه معادل سی شارپش رو بذار تو همین تالار)

amirafshari
سه شنبه 13 تیر 1391, 13:21 عصر
آقا امیر این تاپیک برای سال 86 هستا !!!!

اگر میخوای مشکلت حل بشه تاپیک جدید بزن در ضمن محتوای استورپروسیجر رو هم قرار بده.(البته در تالار VB.NET یا اینکه معادل سی شارپش رو بذار تو همین تالار)

آقا ما ناشی هستیم.ما نابلدیم.شما ببخشین.بابا چرا آدمو انقده خجالت میدین:افسرده::خجالت:
در ضمن من خروجی store procedure رو توی یه datagrid هم میریزم.اونجا درسته.توی SQL هم اجرا میشه.اما توی combo به مشکل میخورم.چشم . اینم کد :

USE [Karkerd]
GO
/****** Object: StoredProcedure [dbo].[SP_showallnames] Script Date: 07/03/2012 13:31:37 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
ALTER PROCEDURE [dbo].[SP_showallnames]
-- Add the parameters for the stored procedure here

AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;

-- Insert statements for procedure here
SELECT name from nameperson
END

beh_develop
سه شنبه 13 تیر 1391, 17:36 عصر
عزیز یه خورده دقت می کردی ، تا حالا پیداش کرده بودی

ستون personalcode تو سطر select نیست ، تو فقط name رو نوشتی :لبخند: