【问题标题】:Retrieve varbinary(MAX) from SQL Server to byte[] in C#从 SQL Server 检索 varbinary(MAX) 到 C# 中的字节 []
【发布时间】:2011-10-11 10:24:57
【问题描述】:

我正在尝试从 SQL Server 获取 varbinary(MAX) 到 C# 中的 byte[] 变量。

我该怎么做?

谢谢

【问题讨论】:

    标签: c# sql-server-2008 byte varbinarymax


    【解决方案1】:
    private static byte[] getDocument(int documentId)
    {
        using (SqlConnection cn = new SqlConnection("..."))
        using (SqlCommand cm = cn.CreateCommand())
        {
            cm.CommandText = @"
                SELECT DocumentData
                FROM   Document
                WHERE  DocumentId = @Id";
            cm.Parameters.AddWithValue("@Id", documentId);
            cn.Open();
            return cm.ExecuteScalar() as byte[];
        }
    }
    

    【讨论】:

    【解决方案2】:

    您必须选择 DATALENGTH(data) 和数据

    data 是你的 varbinary(max)

    int i=0;
    long dataLen = dr.GetInt64(i++);
    if (dataLen > 0)
    {
        Data = new byte[dataLen];
        dr.GetBytes(i++, 0, Data, 0, (int)dataLen);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-19
      • 1970-01-01
      • 2014-07-29
      • 1970-01-01
      • 1970-01-01
      • 2021-08-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多