c# - 如何使用存储过程从 SQL Server 数据库中获取列表并添加到 ComboBox
问题描述
我需要使用存储过程从我的 SQL Server 数据库中获取列表并将所有内容添加到组合框。
当我从 cBoxWhatLaws 中选择任何项目时 - 与数据库连接并获取相关文章并添加到 cBoxArticleList 的应用程序。
Helper.WhatLaws
返回tableName
..
存储过程和数据库都可以,因为它们都适用于 java 应用程序。从此应用程序添加到数据库也可以。
//Page.cs
private void cBoxWhatLaws_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (cBoxWhatLaws.SelectedIndex != 0)
{
tableName = Helper.WhatLaws(cBoxWhatLaws.SelectedIndex);
cBoxArticleList.Items.Clear();
cBoxArticleList.Items.Add("Choose article:");
if (MyDatabaseHelper.seeArtList(tableName).Count == 1)
{
MessageBox.Show("Article list is empty.", "Empty list", MessageBoxButton.OK, MessageBoxImage.Information);
}
else
{
for (int i = 0; i < MyDatabaseHelper.seeArtList(tableName).Count; i++)
{
cBoxArticleList.IsEnabled = true;
cBoxArticleList.Items.Add(MyDatabaseHelper.seeArtList(tableName).ElementAt(i).ToString());
}
}
}
}
// MyDatabaseHelper
static SqlConnection sqlCon = new SqlConnection("Data Source=.; Initial Catalog=PrzepisyGry; Integrated Security=True;");
public static List<string> seeArtList(string przepisyGry)
{
var artList = new List<string>();
try
{
SqlCommand sqlCmd = new SqlCommand("getArticleList", sqlCon);
sqlCmd.CommandType = CommandType.StoredProcedure;
sqlCmd.Parameters.Add(new SqlParameter("@nazwaTabeli", przepisyGry));
sqlCon.Open();
IDataReader result = sqlCmd.ExecuteReader();
int i = 0;
while (result.Read())
{
artList.Add(result[i].ToString());
i++;
}
}
catch
{
MessageBox.Show("Error with get list", "Err", MessageBoxButton.OK, MessageBoxImage.Error);
}
return artList;
}
应用程序返回有问题artList
并显示错误:
获取列表出错 > 索引超出范围
解决方案
我有一个答案。在 MyDatabaseHelper.cs 中:
while (result.Read())
{
artList.Add(result[0].ToString()); // i -> 0 (for first column)
}
推荐阅读
- oauth - 使用移动应用程序向 jhipster 生成的网关发出请求
- java - 如果未选中主复选框,如何取消选中另一个复选框(在主复选框之后定义)
- reactjs - 仅更新按钮单击时的特定项目
- java - SpringBoot 集成测试中的应用程序上下文
- c++ - 如何在 C++ 中对文本文件中的列进行排序
- angular - enableRtl = true 时 rowGrouped 项的 applyColumnState 不正确
- javascript - 纯Javascript弹出/模态离开网站同意
- python-3.x - 如何将约束添加到python中的输入语句
- airflow - 气流错误回调“on_failure_callback”未执行函数中的所有行
- asp.net - VB.NET 连接字符串 ADODB 连接 (Web.Config)