我将数据插入了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数据库中插入的结果相同。我怎么可能擦除所有空白,使其自动居中。
答案 0 :(得分:1)
我可以肯定地说是因为您已将数据库列类型声明为CHAR(或NCHAR)而不是VARCHAR(或NVARCHAR)
CHAR是固定长度的数据类型。如果将一列声明为CHAR(10),然后插入值foobar
(6个字符),然后再查询它,则将得到箭头之间的所有内容:
>foobar <
这是您的foobar的六个字符加上4个空格,以使CHAR(10)最多十个字符
将您的数据库列转换为VARCHAR(或NVARCHAR)
答案 1 :(得分:0)
this.DataGridView.Columns[2].DefaultCellStyle.WrapMode = DataGridViewTriState.True;
this.DataGridView.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.DisplayedCellsExceptHeaders;
this.DataGridView.Columns[2].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
希望这会对您有所帮助。