2012-04-22 25 views
2

我有這樣的SQL表,並需要如下改造它:如何通過C#中的linq更新字段表?

輸入

A | B 
    -------- 
    1 | al 
    2 | bb 
    3 | CC 

輸出

A | B 
    ------- 
    1 | a 
    2 | b 
    3 | c 
+0

您想選擇這些數據以您發佈的輸出格式輸出,或*批量更新*它們看起來像輸出格式中的數據? – 2012-04-22 08:29:08

回答

5

總體思路 修正:

var result = db.tables 
    .Where(x => (x.B!=null || x.B.Length > 0) 
    .Select(x => 
     new 
     { 
      A = x.A, 
      B = x.B[0] 
     }); 
+0

不確定這會起作用。我不認爲Linq-to-SQL支持IsNullOrEmpty。也許不是字符串索引。 – McGarnagle 2012-04-22 06:48:29

+0

@dbaseman您正對Linq-To-SQL。您可以使用空值或長度來檢查 – jebberwocky 2012-04-22 06:56:17

+0

@jebberwocky,您的查詢將按照OP的要求選擇結果,但我認爲OP在詢問如何通過此結果更新表中的數據,即批量更新這些關於新格式的數據 – 2012-04-22 08:27:25

1
db.table.ToList().ForEach(x => x.B = x.B.SubString(0, 1)); 
db.SubmitChanges(); 
1

檢查這是在SQL雖然,最後一行是那種查詢你可以用它來進行轉換,這也可以在批量更新中使用

Declare @tab table(A int,B nvarchar(10)) 
insert into @tab 
select 1,'al' UNION ALL 
select 2,'bb' UNION ALL 
select 3,'CC' 

select A,B from @tab 

select A, left(lower(B),1) B from @tab 
相關問題