[英]Insert database data into listbox C#
免责声明:我以前没有从c#代码查询数据库的经验(所以对我来说很容易)
我试图将我的SQL Server数据库中的数据插入到我的列表框中。 现在我以数组的形式尝试这个。 我首先连接到数据库,然后将数据库中的“状态”插入到数组的索引中。 我希望将所有50个状态放入我的数组中,然后将此信息放入我的列表框中。 现在,我的数据正在插入,但当我在列表框中查看它时,它显示了System.Data.SqlClient.SqlCommand
。
public string connString = "Not displaying this for security reasons, it is set up correctly though."; //Setting up the connection to my DB
public frmState()
{
InitializeComponent();
this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.frmState_FormClosed);
using (SqlConnection dbConn = new SqlConnection(connString))
{
dbConn.Open();
string cmdString = "select State_Name from [State]";
SqlCommand cmd = new SqlCommand(cmdString, dbConn);
SqlDataReader reader = cmd.ExecuteReader();
try
{
while (reader.Read())
{
string[] stateList = new string[50];
for (int i = 1; i <= 50; i++)
{
stateList[i - 1] = cmd.ToString();
}
for (int i = 0; i < stateList.Length; i++)
{
lbStates.Items.Add(stateList[i].ToString());
}
}
}
finally
{
reader.Close();
}
}
}
此外,我知道现在我将展示相同的状态50次。 我试图弄清楚如何一次插入一个状态。 这是一种有效的方法吗? 另外,有关在c#中使用数据库的任何提示吗? 我在Visual Studio 2017和Microsoft SQL Server 2016上。
问题来自你所做的:
stateList[i - 1] = cmd.ToString();
这是错误的,因为您正在将SqlCommand对象转换为字符串并将其放入字符串类型的数组中以从SqlCommand中检索数据。
如下更改以上行将解决您的问题:
tateList[i - 1] = reader.GetString(0);
有关在c#中使用数据库的任何提示?
对于初学者使用C#和SQL,我建议你继续学习ADO.net的基本数据库访问工具,比如使用SqlDataReader,SqlDataReader,SqlDataAdapter,.... 但要拥有专业,当然还有安全应用,女巫也需要简单; 你必须转向使用ORM工具(安全地访问数据库),例如“实体框架”,linq,...女巫会更方便地与数据库交谈。
补充:
我建议你阅读本教程,了解如何使用SqlDataReader。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.