c# - 如果在列表框中选择索引,则将列表框与数据库链接并在文本框中显示值。 C#

标签 c# mysql

这适用于在列表框中显示数据库中的项目,但我需要,如果我在列表框中选择一个值,它会将有关该人的信息显示回文本框。那就是我无法上类的原因。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using MySql.Data.MySqlClient;

namespace program
{
    public partial class Form8 : Form
    {
        public Form8()
        {
            InitializeComponent();
            fill_listbox();
        }

        void fill_listbox()
        {
            string constring = "datasource=sql2.freesqldatabase.com;port=3306;username=sql217040;password=xxxxx";
            string Query = "select * from sql217040.fakedata ;";
            MySqlConnection conDataBase = new MySqlConnection(constring);
            MySqlCommand cmdDataBase = new MySqlCommand(Query, conDataBase);
            MySqlDataReader myReader;

            try
            {
                conDataBase.Open();
                myReader = cmdDataBase.ExecuteReader();
                while (myReader.Read())
                {
                    string id1 = myReader.GetString("id");
                    string name1 = myReader.GetString("name");
                    string surname1 = myReader.GetString("surname");
                    listBox1.Items.Add(id1 + ' ' + name1 + ' ' + surname1);
                }
            }
            catch (Exception ex)
            {

                MessageBox.Show(ex.Message);
            }
        }

        private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            string constring = "datasource=sql2.freesqldatabase.com;port=3306;username=sql217040;password=xxxxx";
            string Query = "select * from sql217040.fakedata where name='" + listBox1.Text + "' ;";
            MySqlConnection conDataBase = new MySqlConnection(constring);
            MySqlCommand cmdDataBase = new MySqlCommand(Query, conDataBase);
            MySqlDataReader myReader;

            try
            {
                conDataBase.Open();
                myReader = cmdDataBase.ExecuteReader();

                while (myReader.Read())
                {

                    string sname = myReader.GetString("name");
                    string ssurname = myReader.GetString("surname");
                    string sphone = myReader.GetString("phone");
                    textBox1.Text = sname;
                    textBox2.Text = ssurname;
                    //telephone.Text = sphone;

                }

            }
            catch (Exception ex)
            {

                MessageBox.Show(ex.Message);
            }
        }

    }
}

最佳答案

理想情况下,我会将您的列表框更改为 datagridview 并像这样更改您的方法

void fill_listbox()
    {
       try
        {
        string constring = "datasource=sql2.freesqldatabase.com;port=3306;username=sql217040;password=xxxxx";
        string Query = "select * from sql217040.fakedata ;";
        using(MySqlConnection conDataBase = new MySqlConnection(constring))
        {
            conDataBase.Open();
            using (SqlDataAdapter a = new SqlDataAdapter(Query, conDataBase))
            {
                DataTable t = new DataTable();
                a.Fill(t);          
                // Render data onto the screen
                dataGridView1.DataSource = t; // <-- datagridview1 is the gridview i have added
         }
       }
       }
       catch(Exception ex)
       {
            MessageBox.Show(ex.ToString());
       }
    }

然后从gridview的单元格双击事件中读取这样的值

private void dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            string name = dataGridView1.Rows[e.RowIndex].Cells["columnname"].Value.ToString();
        }

关于c# - 如果在列表框中选择索引,则将列表框与数据库链接并在文本框中显示值。 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18463213/

相关文章:

c# - 我应该创建多个 Controller 还是具有多个操作的单个 Controller 来处理更详细的响应?

c# - 限制在 MS 脚本引擎中使用命名空间

c# - 在 LoginView 中显示用户名

mysql - 带有截断排除词的 bool 搜索对我不起作用

java - 如何在pojo中使用jpa或hibernate映射json字段?

c# - 如何模拟从另一个方法调用的方法

c# - 在 EF5 中是否可以生成具有表值的枚举?

php - 这是连接表的正确方法吗?

php - Symfony和doctrine从sql数据库查询中获取空响应

mysql - 使用数据库 : E-commerce website 时的最佳实践