[英]How do I retrieve information from database for my C# Windows Form Application
我目前正在開發一個C#Windows窗體應用程序。
現在我嘗試使用SQL命令從數據庫中檢索信息,以填寫我在應用程序中需要的信息。
示例查詢將是“select * from Member”
在成員表中會有名稱,位置等變量等。
如何在我的應用程序中對其進行編碼,以便我可以使用數據庫中的信息填充變量?
我的方法代碼是
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
});
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.