【问题标题】:How to add two mysql table columns to one column in datagridview?如何将两个mysql表列添加到datagridview中的一列?
【发布时间】:2015-11-13 21:22:06
【问题描述】:

我需要转换这个mysql表:

FirstName | LastName | Street      | City    | State | Zipcode | Contact Number
----------+----------+-------------+---------+-------+---------+----------------
John      | Doe      | 123 W. Main | Chicago | IL    | 60600   | (312)555-7458
Jane      | Doe      | 321 W. Main | Chicago | IL    | 60600   | (312)555-6628

到datagridview中的这个表:

Name     | Address                       | Contact Name
---------+-------------------------------+--------------
John Doe | 123 W. Main Chicago, IL 60600 | (312)555-7458
Jane Doe | 321 W. Main Chicago, IL 60600 | (312)555-6628

我尝试了下面的代码,但 datagridview 列 0 和 1 出现空

string Query = "SELECT * FROM people.client";
MySqlConnection myConn = new MySqlConnection(myconnection);
MySqlCommand cmdDataBase = new MySqlCommand(Query, myConn);
MySqlDataAdapter myDataAdapter = new MySqlDataAdapter();
myDataAdapter.SelectCommand = cmdDataBase;
DataTable dbdataset = new DataTable();
myDataAdapter.Fill(dbdataset);

//Set AutoGenerateColumns False
dataGridView1.AutoGenerateColumns = false;
//Set Columns Count
dataGridView1.ColumnCount = 3;

//Add Columns
dataGridView1.Columns[0].HeaderText = "Name";
dataGridView1.Columns[0].DataPropertyName = "FirstName+ ' ' +LastName";

dataGridView1.Columns[1].HeaderText = "Address";
dataGridView1.Columns[1].DataPropertyName = "Street+ '' +City+ '' +State+ '' +Zipcode";

dataGridView1.Columns[2].HeaderText = "Contact Number";
dataGridView1.Columns[2].DataPropertyName = "Contact Number";

dataGridView1.DataSource = dbdataset;

任何帮助将不胜感激。提前谢谢你。

【问题讨论】:

标签: c# mysql winforms datagridview


【解决方案1】:
SELECT CONCAT(FIRSTNAME, " ", LASTNAME) AS NAME,
    CONCAT(STREET, " ", CITY, ", ", STATE, " ", ZIPCODE) AS ADDRESS, PHONE
FROM people.client

这会选择您的两个字段并用空格分隔它们。

【讨论】:

  • 谢谢,但问题不够完整,无法满足我的需求。我编辑了问题。
  • 你改变了很多问题,但我想你可以看到如何做我为“名称”到“地址”所做的同样的事情来得到你想要的,对吧?
  • 在我的回答中,我使用PHONE 而不是Contact Name 作为电话的最后一个字段,因为我认为这是一个粘贴错误......对吗?
  • 好的,我将如何分离选择查询语法?
  • 在你的语句中你可以使用单引号而不是双引号,或者转义它们。
【解决方案2】:

感谢数字克里斯。

Mysql 表:

FirstName | LastName | Street      | City    | State | Zipcode | Contact Number
----------+----------+-------------+---------+-------+---------+----------------
John      | Doe      | 123 W. Main | Chicago | IL    | 60600   | (312)555-7458
Jane      | Doe      | 321 W. Main | Chicago | IL    | 60600   | (312)555-6628

这段代码:

string Query = "SELECT idclient, CONCAT(FIRSTNAME, ' ', LASTNAME) AS NAME,"
     + " CONCAT(STREET, ' ', CITY, ', ', STATE, ' ', ZIPCODE) AS ADDRESS,"
     + "`Contact Number` FROM people.client";

MySqlConnection myConn = new MySqlConnection(myconnection);
MySqlCommand cmdDataBase = new MySqlCommand(Query, myConn);
MySqlDataAdapter myDataAdapter = new MySqlDataAdapter();
myDataAdapter.SelectCommand = cmdDataBase;
DataTable dbdataset = new DataTable();
myDataAdapter.Fill(dbdataset);

//Set AutoGenerateColumns False
dataGridView1.AutoGenerateColumns = false;
//Set Columns Count
dataGridView1.ColumnCount = 3;

//Add Columns
dataGridView1.Columns[0].HeaderText = "Name";
dataGridView1.Columns[0].DataPropertyName = "Name";

dataGridView1.Columns[1].HeaderText = "Address";
dataGridView1.Columns[1].DataPropertyName = "Adress";

dataGridView1.Columns[2].HeaderText = "Contact Number";
dataGridView1.Columns[2].DataPropertyName = "Contact Number";

dataGridView1.DataSource = dbdataset;

等于 Datagridview 表:

Name     | Address                       | Contact Number
---------+-------------------------------+----------------
John Doe | 123 W. Main Chicago, IL 60600 | (312)555-7458
Jane Doe | 321 W. Main Chicago, IL 60600 | (312)555-6628

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-09
    • 1970-01-01
    • 2020-01-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多