我可能遗漏了一些东西或者可能不理解它是如何工作的,但我正在尝试从数据库中获取数据,将其推入模型类(进入属性) - 列表,并从列表中获取值到ComboBox 。到目前为止我所做的是:
创建DBConnection类,它获取“connstring”,执行sp,从数据库读取数据。我还创建了一个具有一个属性“Department”的模型,我想用它来使用comboBox1.Items.Add()...将值推送到ComboBox中。
我错过了什么?为什么我会出现施法错误?
模特课:
namespace AddRequester
{
public class ListDepartment
{
public List<string> Department { get; set; }
}
}
DBConnection类:
namespace AddRequester
{
public class DBConnection
{
string conn = ConfigurationManager.ConnectionStrings["dbConfig"].ToString();
public void listDepartment()
{
SqlConnection sql = new SqlConnection(conn);
try
{
SqlCommand comm = new SqlCommand("ListDepartment", sql);
comm.CommandType = CommandType.StoredProcedure;
sql.Open();
ListDepartment departs = new ListDepartment();
using (var dr = comm.ExecuteReader())
{
while (dr.Read())
{
departs.Department = dr["Description"].ToString();
}
}
}
catch (Exception e)
{
//add output
}
sql.Close();
}
}
}
从模型到组合框中获取值的最佳方法是什么?
答案 0 :(得分:0)
因为没有人知道这么做,所以我以不同的方式做到了。我正在共享代码,以便其他人可以使用它,如果他们遇到同样的问题。
因此,我修改了DBConnection类的代码并完全删除了“model”ListDepartment类,
namespace AddRequester
{
public class DBConnection
{
public List<string> listDepartment()
{
string conn = ConfigurationManager.ConnectionStrings["dbConfig"].ToString();
SqlConnection sql = new SqlConnection(conn);
List<string> departments = new List<string>();
try
{
SqlCommand comm = new SqlCommand("ListDepartment", sql);
comm.CommandType = CommandType.StoredProcedure;
sql.Open();
using (var dr = comm.ExecuteReader())
{
while (dr.Read())
{
var dep = dr["Description"].ToString();
departments.Add(dep);
}
}
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
sql.Close();
return departments;
}
}
}
我已添加到Form1.cs
namespace AddRequester
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load_1(object sender, EventArgs e)
{
DBConnection db = new DBConnection();
foreach (var deps in db.listDepartment())
{
comboBox1.Items.Add(deps);
}
}
}
}
最后,当我启动应用程序并使用combobox1时,我从数据库中获取项目列表。 欢呼声。