当前位置:编程学习 > C#/ASP.NET >>

c#textbox中的字符串存入sql数据库

字符串如041023023025026
我想把041,023,023,025,026分别存入不同的列
而且如果041第一个位是0就要清掉0转换成41存入,如果是141这样的就直接存141
而且数据库类型是float类型

--------------------编程问答-------------------- 无人帮助?
难道要流产?
用Split 分割了再int.Parse转换吗?
但是这个字符串没有隔开的标识啊,即使是0也是有用的。 --------------------编程问答--------------------

declare @s varchar(30)
set @s='041023023025026'
set @s=ltrim(rtrim(replace(@s,'0',' ')))
declare @i int;set @i=len(@s)-len(replace(@s,' ',''))+1
set @s=replace(@s,' ','.')

declare @k varchar(4)
set @k=substring(@s,1,charindex('.',@s)-1)
set @s=substring(@s,charindex('.',@s)+1,len(@s))
select @k as col1,parsename(@s,4) as col2,parsename(@s,3) as col3,
parsename(@s,2) as col4,parsename(@s,1) as col5
/*
col1   col2    col3    col4    col5
----   ----    ----    -----  ---------
41 23 23 25 26
*/
--------------------编程问答-------------------- 你也可以先自己拆分好了,然后再进行存储。
例如你的:041023023025026

string text = textbox1.text;
string[] str = new string[5];
for(int i = 0;i<5;i++)
{
str[i] = text.substring(i*3,3);
}

这样从str[0]到str[4]的五个就是需要存储的字段,然后在分别存储到每一列就好了。 --------------------编程问答--------------------
引用 3 楼 yalehorance 的回复:
你也可以先自己拆分好了,然后再进行存储。
例如你的:041023023025026
C# code

string text = textbox1.text;
string[] str = new string[5];
for(int i = 0;i<5;i++)
{
str[i] = text.substring(i*3,3);
}


这样从str[0]到str[4]的五个就是需要存……


忘记去除第一个0了,其实只要这样就行了:

str[0] = convert.tostring(convert.toint32(str[0]));

其实这样就是先强制转换为int型,根据其最高位如果为0自动剪除的特性,然后再强制转换为string型。 --------------------编程问答-------------------- 用Substring() --------------------编程问答--------------------
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,