Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从数据库中的列中删除空格_C#_Sql - Fatal编程技术网

C# 从数据库中的列中删除空格

C# 从数据库中的列中删除空格,c#,sql,C#,Sql,我有一个datagridview,它显示了我的sql中的一个表,但它有一些空格,正如您在这个屏幕截图中看到的: 我想知道是否有可能删除这些空白。我已经试过了: SqlCommand objcmd1 = new SqlCommand("UPDATE dbo.UXMenu SET TransDocument = RTRIM(TransDocument) WHERE Estado = 0", myConnection); objcmd1.ExecuteNonQuery(); 但不是移除空白空间,

我有一个datagridview,它显示了我的sql中的一个表,但它有一些空格,正如您在这个屏幕截图中看到的:

我想知道是否有可能删除这些空白。我已经试过了:

SqlCommand objcmd1 = new SqlCommand("UPDATE dbo.UXMenu SET TransDocument = 
RTRIM(TransDocument) WHERE Estado = 0", myConnection);
objcmd1.ExecuteNonQuery();
<>但不是移除空白空间,而是移除整个行。

下面是我在datagridview中显示数据的代码,如果您想了解有关代码的更多详细信息,请随时询问

InitializeComponent();
SqlConnection myConnection = new SqlConnection(@"Data source = ****;Database=****; User Id=****; Password=****");
myConnection.Open();
SqlCommand objcmd = new SqlCommand("SELECT TransDocument, TransSerial, 
TransDocNumber, PartyName, PartyLocalityID, TotalAmount, ShipToPostalCode FROM dbo.UXMenu WHERE Estado = 0", myConnection);
objcmd.ExecuteNonQuery();
SqlDataAdapter adp = new SqlDataAdapter(objcmd);
DataTable dt = new DataTable();
adp.Fill(dt);
dataGridView1.DataSource = dt;
dataGridView1.AutoSizeColumnsMode = 
DataGridViewAutoSizeColumnsMode.DisplayedCells;
更新1:

我添加了用于创建表的代码

SqlCommand command = new SqlCommand("IF OBJECT_ID('UXMenu', 'U') IS NULL CREATE TABLE UXMenu(TransDocument char(5), TransSerial char(5), TransDocNumber float  PRIMARY KEY, PartyName char(60), PartyLocalityID char(5), TotalAmount char (25), ShipToPostalCode char(35), Estado int);", myConnection);
更新2:

添加了创建文本文件的代码

if (dataGridViewEnviarDados.SelectedRows.Count > 0)
{
 foreach (DataGridViewRow r in dataGridViewEnviarDados.SelectedRows)
  {
   var transactionHandler = new TransactionHandler();
   FileInfo arquivo = new FileInfo(@"C:\Users\HP8200\Desktop\faturas\" + r.Cells[0].Value.ToString() + r.Cells[1].Value.ToString() + r.Cells[2].Value.ToString() + ".txt");                    
     using (TextWriter tw = new StreamWriter(arquivo.FullName, false, Encoding.Default))
    {
      foreach (DataGridViewColumn c in dataGridViewEnviarDados.Columns)
    {
     tw.Write(r.Cells[c.Name].Value.ToString() + ";");
    }
    tw.Close();
  }
 }
}
更新3:

将我的代码更改为:

SqlCommand command = new SqlCommand("IF OBJECT_ID('UXMenu', 'U') IS NULL CREATE TABLE UXMenu(TransDocument varchar(5), TransSerial varchar(5), TransDocNumber float  PRIMARY KEY, PartyName varchar(60), PartyLocalityID varchar(5), TotalAmount varchar(25), ShipToPostalCode varchar(35), Estado int);", conn);
现在我的桌子看起来像这样:

SqlCommand command = new SqlCommand("IF OBJECT_ID('UXMenu', 'U') IS
 NULL CREATE TABLE UXMenu(TransDocument varchar(5), TransSerial
 varchar(5), TransDocNumber float  PRIMARY KEY, PartyName varchar(60),
 PartyLocalityID varchar(5), TotalAmount varchar(25), ShipToPostalCode
 varchar(35), Estado int);", conn);

您使用的是
char
数据类型-这将创建一个始终为该长度的列,因此通过执行
char(35)
您说的是“创建一个35个字符宽的列,即使我只在其中放置了2个字符”


您可能需要
varchar
,这是一个可变字符长度的字段。

您使用的是
char
数据类型-这将创建一个始终为该长度的列,因此通过执行
char(35)
您说的是“创建一个35个字符宽的列,即使我只在其中放置了2个字符”


您可能需要
varchar
,这是一个可变字符长度字段。

我需要将
chars
更改为
varchar
,并执行了如下操作:

SqlCommand command = new SqlCommand("IF OBJECT_ID('UXMenu', 'U') IS
 NULL CREATE TABLE UXMenu(TransDocument varchar(5), TransSerial
 varchar(5), TransDocNumber float  PRIMARY KEY, PartyName varchar(60),
 PartyLocalityID varchar(5), TotalAmount varchar(25), ShipToPostalCode
 varchar(35), Estado int);", conn);

我需要将我的
chars
更改为
varchar
,并执行了如下操作:

SqlCommand command = new SqlCommand("IF OBJECT_ID('UXMenu', 'U') IS
 NULL CREATE TABLE UXMenu(TransDocument varchar(5), TransSerial
 varchar(5), TransDocNumber float  PRIMARY KEY, PartyName varchar(60),
 PartyLocalityID varchar(5), TotalAmount varchar(25), ShipToPostalCode
 varchar(35), Estado int);", conn);

标记您正在使用的dbms。(例如,RTRIM是特定于产品的。)我在这个屏幕截图中看不到空格。你的意思是列太宽了吗?请发布创建文本文件的代码,因为列的宽度不应影响这一点。将表中列的数据类型从
char
更改为
varchar
。标记你正在使用的dbms。(例如,RTRIM是特定于产品的。)我在这个屏幕截图中看不到空格。您的意思是列太宽了吗?请发布创建文本文件的代码,因为列的宽度不应影响这一点。将表中列的数据类型从
char
更改为
varchar
。感谢您的建议,我将尝试使用nvarchar if多语种数据库。我在检查什么?@Josue Figueiredo,请在数据库中使用数据类型和大小指定表的列谢谢你的建议,我将尝试使用nvarchar if多语种数据库。我在检查什么?@Josue Figueiredo,请使用数据库中的数据类型和大小指定表的列