c#导出数据到csv文本文档中,但是数据前面的0不见了,请教高手!!!

2021专业CNC数据采集 2009-11-12 11:40:43
在导出的CSV文件中要输出一个字符串,比如00001,可是出来的是1,但是如果使用'的话可以正常显示出来,不知道除了使用'外还有没有别的好的方法了呢?
非网页格式,只有代码没有窗体的程式
数据插入代码:
try
{
conn.Open();
SqlCommand com = new SqlCommand();
com.Connection = conn;
com.CommandTimeout = 180;
com.CommandText = "FIC-CZFAD";
com.CommandType = CommandType.StoredProcedure;
StreamWriter sw = new StreamWriter(f_name, true, Encoding.UTF32);

string writerstr = "";
SqlDataAdapter myda = new SqlDataAdapter(com);
DataTable dt = new DataTable();
myda.Fill(dt);

for (int i = 0; i < dt.Rows.Count - 1; i++)
{
for (int j = 0; j < dt.Columns.Count; j++)
{
writerstr = writerstr +"'" + dt.Rows[i][j].ToString().Trim()+"\t";
}
sw.WriteLine(writerstr);
writerstr = string.Empty;

}
sw.Flush();

sw.Close();

conn.Close();





请教高手援手,感激十分!
...全文
536 点赞 收藏 11
写回复
11 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
zwei61 2012-09-03
[Quote=引用 1 楼 的回复:]

字符前面加这个((char)(9)).ToString() 就可以了,我实现过
[/Quote]
很牛掰,一下解决我的棘手问题
非常感谢
回复
liminlovemama 2009-11-12
目前还有别的方法吗?
不光csv,Excel也是一样,需要加"'".
单引号的作用是,将数值以文本形式表示。
回复
xiaoxin0809 2009-11-12
奇怪了,我原来的代码是这样的,可以实现的,下面是代码,从网页导出的
HtmlTextWriter htWriter = new HtmlTextWriter(Response.Output);

Response.Clear();
Response.ContentType = "application/octet-stream"; //"application/octet-stream";Text/application
Response.AppendHeader("Content-Disposition", "attachment; filename=" + Server.UrlEncode(Filename));
Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");

string data = "";
foreach (DataTable tb in ds.Tables)
{
//写出列名
foreach (DataColumn column in tb.Columns)
{
data += column.ColumnName + ",";
}
data += "\n";
Response.Write(data);
//写出数据
foreach (DataRow row in tb.Rows)
{
data = "";
foreach (DataColumn column in tb.Columns)
{

data += ((char)(9)).ToString() + row[column].ToString() + ",";

}

Response.Write(data + "\n");
}

}


Response.Write("\n");
Response.End();
回复
你的方法运行后的数据十这样的(和原来我那个方法是没有变化的):
00265514325C
2655143270
00265514328E
00265514348D
2655143444
2655143488
2655143448
2655143451
2655143489
2655143486
00265514347c
2655143474
2655143477
2655143493
2655143475
2655143491
00265514347b
00265514348a
2655143496
26前面是有2个0 的,但是现在还没有
回复
zhangyongnihao1 2009-11-12
e~ http://bbs.55dns.net/?fromuid=211793
回复
xiaoxin0809 2009-11-12
[Quote=引用 3 楼 baoguanghua408 的回复:]
前面的0没有确定个数呀!这个方法还是不行,同样感谢!
还请高手指教!
[/Quote]

和0的个数没有关系啊,直接放在数字最前面就可以了啊
回复
前面的0没有确定个数呀!这个方法还是不行,同样感谢!
还请高手指教!
回复
xiaoxin0809 2009-11-12
writerstr = writerstr + ((char)(9)).ToString() + dt.Rows[i][j].ToString().Trim()+"\t";
回复
xiaoxin0809 2009-11-12
字符前面加这个((char)(9)).ToString() 就可以了,我实现过
回复
我知道的是网页格式的也能做到。
但是我现在是直接是代码的,并且整个程式没有窗体。
在前面加"'"的结果是这样的:

'002655140c8f
'002655143230
'00265514325C
'002655143270
'00265514328E
'00265514348D
'002655143444
'002655143488
'002655143448
'002655143451
'002655143489
'002655143486
'00265514347c
'002655143474
'002655143477
'002655143493
'002655143475
'002655143491
'00265514347b
'00265514348a
'002655143496
'002655144d44
无法消除前面的符号,在表格里面双击之后就OK了
回复
相关推荐
发帖
C#
创建于2007-09-28

10.5w+

社区成员

.NET技术 C#
申请成为版主
帖子事件
创建了帖子
2009-11-12 11:40
社区公告

让您成为最强悍的C#开发者