Sql DBgrid列非常宽

Sql DBgrid列非常宽,sql,sql-server,delphi-xe,dbgrid,Sql,Sql Server,Delphi Xe,Dbgrid,我们有以下情况。我们需要将SQL Server数据库中的字段从varchar更改为nvarchar。更改后,所有dbgrid都显示非常宽的列。我们如何全局调整此列的大小 列Lastname非常宽: 让我们创建一个示例表: CREATE TABLE PATIENT( ID INT IDENTITY(1,1) PRIMARY KEY NOT NULL, LastName NVARCHAR(50) NOT NULL ) GO INSERT INTO PATIENT VALUES ('Patient1'

我们有以下情况。我们需要将SQL Server数据库中的字段从varchar更改为nvarchar。更改后,所有dbgrid都显示非常宽的列。我们如何全局调整此列的大小

Lastname
非常宽:


让我们创建一个示例表:

CREATE TABLE PATIENT(
ID INT IDENTITY(1,1) PRIMARY KEY NOT NULL,
LastName NVARCHAR(50) NOT NULL
)
GO
INSERT INTO PATIENT VALUES
('Patient1'),
('Patient2'),
('Patient3');
现在让我们看看
DBGrid
如何显示数据:

您的问题是此处列(50)的Sise

您可以将
DBGrid
Width
更改为:

DBGrid1.Columns[1].Width := Value;

另外,请确保启用了
DBGrid
dgColumnResize
选项(true),这样您可以在运行时根据需要调整列的大小。

使用DBGrid的字段名或列索引。您更改了数据类型,但没有修复数据。您需要对列执行RTRIM操作,以删除列为固定宽度时添加的尾随空格。@SeanRange即使他这样做,如果列为nvarchar(50),dbgrid列的宽度也会很长,即使列只有几个字符。@Sami不确定您的意思。这些列将显示为宽列,因为其中有空格导致数据保持为宽列。@SeanLange我们不确定他是否有空格。我需要通过编程来完成此操作,因为在创建表单后,my DBGrid数据也会通过编程方式填充。救生员!谢谢