高手请进,c#中sql server 存取数据的问题,急.....

来源:百度知道 编辑:UC知道 时间:2024/06/30 14:10:54
现在数据库里面有一个表table有a,b,c三列,列宽分别是5、10、8,有一个长度为30的字符串,现在要把字符串的前23(5+10+8)个字符存到表table中,依次截取5、10、8个字符分别存到这三列中,但现在的问题是我并不知道表table三列的列宽(也就是我并不知道5、10、8这三个数),如何依次从字符串的头一个字符开始把这三列都存满(也就是第一列自动读5位,第二列自动读10位,第三列自动读8位,三列宽共23,让数据库把字符串的前23个字符填充到这三列)?
哪位高手如果能帮忙解决问题的话我追加积分100分
请哪位高手说的再详细一些,小弟是个初学者,希望能在语句旁边加上注释
如果我的表中列数很多,有十五到二十列左右时,而且我也不清楚表中各列的列名时,楼下的这个方法好像不可取,哪位高手帮忙一下

declare @val nvarchar(30);--传入的值
set @val='aaaaabbbbbbbbbbccccccccddddddd';
------------------------------------------
declare @n_col1 int;
declare @n_col2 int;
declare @n_col3 int;
select @n_col1=[length] from syscolumns
where id=object_id(N'table') and name=N'a'
select @n_col2=[length] from syscolumns
where id=object_id(N'table') and name=N'b'
select @n_col3=[length] from syscolumns
where id=object_id(N'table') and name=N'c'
--以上获取三列的宽度
---------------------------------------------
--以下截取字符串
insert into [table](a,b,c)
select left(@val,@n_col1),substring(@val,@n_col1+1,@n_col2),substring(@val,@n_col1+@n_col2+1,@n_col3)