将SQL数据库附加到ComboBox.ItemSource(WPF)

将SQL数据库附加到ComboBox.ItemSource(WPF),第1张

概述将SQL数据库附加到ComboBox.ItemSource(WPF)

我想知道如何将一个sql Server数据库分配给comboBox的ItemSource属性 (在WPF应用程序中)。 我将数据源分配给项目,但不知道如何分配给该属性。

最好的祝福

.NET在linux上,〜/文件夹是错误的?

在桌面下打开和closureswindows 8触摸键盘tabtip

使用wpf在窗口的任何地方检测文本框

类似于.NET中等待定时器

EndPoint:C#中的语法 – 这是什么?

你可以尝试这样的..你可以像下面这样绑定组合框的项目源属性..

的ItemsSource = “{结合}”

编辑:

连接字符串:

你可以添加控制事件或类,但它应该在WPF应用程序窗口。

如果您在Visual Studio或Visual C#中创建新应用程序,或者创建window1.xaml。 你需要添加连接字符串基本上在类或事件在window1.xaml不在app.config或app.xaml。

连接字符串在类中定义:

这里是通过创建一个类(它的sql连接器,而不是我在第一个显示的oleDb)的例子:

public class ConnectionHelper { public static sqlConnection GetConnection() { string connectionStr = "Data Source=MICROSOFT-JIGUO;Initial Catalog=CompanyTestDB;Integrated Security=True"; sqlConnection conn = new sqlConnection(connectionStr); return conn; } }

你可以在你的方法中使用这个类:

sqlConnection conn = ConnectionHelper.GetConnection();

<Window ....... Loaded="OnLoad" > <GrID> <ComboBox Height="18" SelectionChanged="cmbcategory_SelectionChanged" ItemsSource="{Binding}" HorizontalAlignment="Right" margin="0,92,17,0" name="cmbcategory" VerticalAlignment="top" WIDth="176" borderBrush="#FFFFFFFF" Selectedindex="0"/> </GrID> </Window>

加载函数可以赋值给组合框

private voID OnLoad(object sender,System.EventArgs e) { ListCategorIEs(); } private voID ListCategorIEs() { sqlCon = new sqlConnection(); sqlCon.ConnectionString = Common.GetConnectionString(); cmd = new sqlCommand(); cmd.Connection = sqlCon; cmd.CommandType = CommandType.Text; cmd.CommandText = "SELECT * FROM CategorIEs"; sqlDa = new sqlDataAdapter(); sqlDa.SelectCommand = cmd; ds = new DataSet(); try { sqlDa.Fill(ds,"category"); DaTarow nRow = ds.tables["category"].NewRow(); nRow["categoryname"] = "List All"; nRow["categoryID"] = "0"; ds.tables["category"].Rows.InsertAt(nRow,0); //Binding the data to the comboBox. cmbcategory.DataContext = ds.tables["category"].defaultview; //To display category name (displayMember in Visual Studio 2005) cmbcategory.displayMemberPath = ds.tables["category"].Columns["categoryname"].ToString(); //To store the ID as hIDden (ValueMember in Visual Studio 2005) cmbcategory.SelectedValuePath = ds.tables["category"].Columns["categoryID"].ToString(); } catch (Exception ex) { MessageBox.Show("An error occurred while loading categorIEs."); } finally { sqlDa.dispose(); cmd.dispose(); sqlCon.dispose(); } }

如果有其他人登陆(像我这样做),这里是pratap k代码的改进版本。 只需传递6个参数到这个方法,它会填充你的组合框。

connectionString – 连接到数据库的连接字符串的名称。 如果您希望在其他课程中设置它,只需调用参考,则可以相应地修改代码。

comboBox – 您要填写的组合框的名称

查询 – 您查询从数据库中获取数据

defaultValue – 您要设置为组合框的默认值

itemText – 这是您要在列表框中显示的数据。 这是数据库列的名称,并在您的SELECT查询中。

itemValue – 这是您想要关联到组合框的项目的值。 这也是您的SELECT查询中的一列,是您的数据库中的一列的名称。 (如果你不需要它,也可以从代码和参数中删除它。

另外,您可以将这些值传递给XAML代码中的值(displayMemberPath和SelectedValuePath)。

public bool fillComboBox(string connectionString,System.windows.Controls.ComboBox comboBox,string query,string defaultValue,string itemText,string itemValue) { sqlCommand sqlcmd = new sqlCommand(); sqlDataAdapter sqladp = new sqlDataAdapter(); DataSet ds = new DataSet(); try { using (sqlConnection _sqlconTeam = new sqlConnection(ConfigurationManager.ConnectionStrings[connectionString].ConnectionString)) { sqlcmd.Connection = _sqlconTeam; sqlcmd.CommandType = CommandType.Text; sqlcmd.CommandText = query; _sqlconTeam.open(); sqladp.SelectCommand = sqlcmd; sqladp.Fill(ds,"defaulttable"); DaTarow nRow = ds.tables["defaulttable"].NewRow(); nRow[itemText] = defaultValue; nRow[itemValue] = "-1"; ds.tables["defaulttable"].Rows.InsertAt(nRow,0); comboBox.DataContext = ds.tables["defaulttable"].defaultview; comboBox.displayMemberPath = ds.tables["defaulttable"].Columns[0].ToString(); comboBox.SelectedValuePath = ds.tables["defaulttable"].Columns[1].ToString(); } return true; } catch (Exception expmsg) { return false; } finally { sqladp.dispose(); sqlcmd.dispose(); } }

感谢pratap k。 总结

以上是内存溢出为你收集整理的将SQL数据库附加到ComboBox.ItemSource(WPF)全部内容,希望文章能够帮你解决将SQL数据库附加到ComboBox.ItemSource(WPF)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1285692.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存