如何从数据库检索我的C#Windows窗体应用程序的信息
问题描述:
我目前正在开发一个C#Windows窗体应用程序。如何从数据库检索我的C#Windows窗体应用程序的信息
现在我正尝试使用SQL命令从数据库中检索信息以填写我的应用程序中需要的信息。
样本查询是“SELECT * FROM会员”
在成员表中会有类似的名称,位置,等等等等
如何我在应用程序代码就这样我的变量可以用数据库中的信息填充我的变量?
我的方法的代码将
private Panel createNotificationPanel(String name, String location, String imageExtension, String alertType, String memberid)
{
}
我已经创建了一个成员类,其中包括所有的set和get方法,这一切都值
,目前我做了什么至今:
String connectionString = ConfigurationManager.ConnectionStrings["connection2"].ConnectionString;
SqlConnection conn = new SqlConnection(connectionString);
SqlCommand cmd = new SqlCommand("select * from alert);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet dataset = new DataSet();
conn.Open();
da.Fill(dataset, "authenticate");
conn.Close();
int respond = (int)dataset.Tables["authenticate"].Rows[0]["respond"];
if (respond == 1)
{
//to fill in here
}
检索我将它添加到列表如下
的信息后,List.Add(new MemberAlert("name", "location", "type", "memberID", "imageExtension"));
所以我想知道如何替换数据库中的信息 我不知道如何从这里继续。谁能帮我这个?
答
DataSet dataset = new DataSet();
using (SqlConnection connection =
new SqlConnection(connectionString))
{
SqlDataAdapter adapter = new SqlDataAdapter();
adapter.SelectCommand = new SqlCommand(
"select * from alert", connection);
adapter.Fill(dataset, "authenticate");
}
// Load Data from the DataSet into the ListView
private void LoadList()
{
// Get the table from the data set
DataTable dtable = dataset.Tables["authenticate"];
// Clear the ListView control
listView1.Items.Clear();
// Display items in the ListView control
for (int i = 0; i < dtable.Rows.Count; i++)
{
DataRow drow = dtable.Rows[i];
// Define the list items
ListViewItem lvi = new ListViewItem(drow["name"].ToString());
lvi.SubItems.Add (drow["location"].ToString());
lvi.SubItems.Add (drow["type"].ToString());
lvi.SubItems.Add (drow["memberID"].ToString());
lvi.SubItems.Add (drow["imageExtension"].ToString());
// Add the list items to the ListView
listView1.Items.Add(lvi);
}
}
如果您需要从数据集表中创建列表。你可以迭代上面的行并在循环内创建列表项并将它们添加到列表中。
答
您可以加载数据,而无需使用ExecuteScalar
和ExecuteReader
填充中间的DataSet
。因此,像下面:
cmd.CommandText = "select respond from alert";
var respond = cmd.ExecuteScalar();
if (respond != null && (int)respond == 1)
{
//... execute your command to select from Member here
}
然后,你if
使用ExecuteReader
内,并直接从SqlDataReader
装载值:
cmd.CommandText = "select * from Member";
using (var reader = cmd.ExecuteReader())
{
while(reader.Read())
{
list.Add(new MemberAlert
{
Name = reader.GetString(0),
// load other properties from reader
});
}
}
除非你使用.NET 2.0,我建议你留下来远离DataSet/DataTable,而是使用实体框架。 –