Почему у меня много пробелов после каждых данных в ячейке в моей ячейке таблицы данных с данными из базы данных? - PullRequest
0 голосов
/ 06 июля 2019

Я вставил данные в свою базу данных SQL Server Leyte:

using (SqlConnection myConnection = new SqlConnection(con))
{
    myConnection.Open();

    SqlDataAdapter adapt = new SqlDataAdapter("select prov_name from tbl_CoopList", con);

    DataTable dt = new DataTable();
    adapt.Fill(dt);

    dgv_CoopList.DataSource = dt;

    myConnection.Close();
}

Проблема была во время выполнения, в datagridview, когда я дважды щелкаю по ячейке, она имеет много пробелов, как:

 "Leyte (and a lot of spaces)".

Я пытался решить мою проблему, заключающуюся в том, как центрировать мои тексты данных для каждой ячейки, даже если у меня есть этот код:

dataGridView1.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;

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

Ответы [ 2 ]

1 голос
/ 06 июля 2019

Я вполне уверен, что это потому, что вы объявили тип столбца вашей базы данных как CHAR (или NCHAR), а не VARCHAR (или NVARCHAR)

CHAR - это тип данных фиксированной длины. Если вы объявите столбец как CHAR (10), а затем вставите значение foobar (6 символов) и затем запросите его обратно, вы получите все между стрелками:

>foobar    <

Это ваши шесть символов foobar плюс 4 пробела, чтобы сделать его до десяти символов для CHAR (10)

Преобразование столбцов базы данных в VARCHAR (или NVARCHAR)

0 голосов
/ 06 июля 2019
this.DataGridView.Columns[2].DefaultCellStyle.WrapMode = DataGridViewTriState.True;         
this.DataGridView.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.DisplayedCellsExceptHeaders;         
this.DataGridView.Columns[2].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;

Надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...