2015-05-26 15 views
2

我想確定從SQL Server爲任意SQL命令返回到.NET應用程序的數據量。列結構在編譯時不知道。我對數據本身不感興趣,只是長度。使用SqlDataReader確定行的數據大小

long size = 0; 
using (SqlDataReader reader = cmd.ExecuteReader()) 
{ 
    while (reader.Read()) 
    { 
     //size += size of current reader row ? 
    } 
} 

有沒有辦法做到這一點?

回答

0

如果行的大小是指列的數量,則可以使用reader。 FieldCount或閱讀器。 VisibleFieldCount

long size = 0; 
using (SqlDataReader reader = cmd.ExecuteReader()) 
{ 
    while (reader.Read()) 
    { 
     size += reader.FieldCount; 
    } 
} 
+0

謝謝,但我在收到的數據量。 – geofftnz

+0

對不起,我想我不太瞭解你。也許你想通過使用reader來獲取二進制數據來計算它的長度[GetSqlBytes](https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqldatareader.getsqlbytes(v = vs.110) ).aspx)(每個列已知的數量與reader.FieldCount)... –

+0

這基本上是我想要做的,但GetSqlBytes()只出現工作,如果SQL類型是一個BLOB類型的列開始。 – geofftnz