Как получить информацию из базы данных для моего приложения C # Windows Form - PullRequest
1 голос
/ 05 ноября 2011

Я в настоящее время разрабатываю C # Windows Form Application.

Теперь я пытаюсь использовать команду SQL для извлечения информации из базы данных, чтобы заполнить информацию, которая мне нужна в моем приложении.

Примером запроса будет «выбрать * из членов»

В таблице членов будут переменные, такие как имя, местоположение и т. Д. И т. Д.

Как мне кодировать это в моем приложении, чтобы я мог заполнить свои переменные информацией из базы данных?

Мой код для метода будет

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"));

так что мне интересно, как я могу заменить информацию внутри той, что в базе данных Я не уверен, как мне поступить отсюда. кто-нибудь может мне помочь с этим?

Ответы [ 2 ]

4 голосов
/ 05 ноября 2011
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);
    }
}

если вам нужно создать список из таблицы набора данных. Вы можете перебирать строки, как указано выше, создавать элементы списка внутри цикла и добавлять их в список.

0 голосов
/ 05 ноября 2011

Вы можете загрузить свои данные без необходимости заполнять промежуточный DataSet, используя ExecuteScalar и ExecuteReader. Так что-то вроде следующего:

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
            });
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...