我有一个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);
现在我的桌子看起来像这样:
答案 0 :(得分:2)
您正在使用char
数据类型 - 这将创建始终该长度的列,因此通过执行char(35)
,您说“创建一个35列chars wide,即使我只放了2个字符“。
您可能希望varchar
是一个可变字符长度字段。
答案 1 :(得分:1)
我需要将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);