2

.pdf現在、Windows フォーム アプリケーション (C#、VS 2010) に取り組んでおり、ユーザーが.exeファイルを SQL Server 2008 データベースにアップロードしてダウンロードできる機能を作成する必要があります。

.txt私が抱えている問題は、データベースからダウンロードしたファイルが同じサイズであっても常に破損していることです (ファイルを除く)。そしてvarbinary(MAX)、データベースにデータを保存するためのファイルタイプとして使用しました。

これを行う方法のサンプルコードを誰かに見せてもらえますか?

PS: 1 週間以上調査しましたが、まだ問題の解決策が見つかりません。誰か助けてもらえますか? どんな答えでも大歓迎です。

4

1 に答える 1

1

以下の例では、いくつかの仮定が行われています。

  1. データベースへのアクセスにはDapperを使用しています。任意の IDbConnectionオブジェクトを拡張します。
  2. データベースに、そのような定義を持つテーブルがありますCREATE TABLE Data (Id INT IDENTITY(1, 1) PRIMARY KEY, Data VARBINARY(MAX))
  3. ここにドキュメントがありますReadAllBytes

したがって、明らかに、テーブル構造を囲むものを何も提供していないため、必要に応じてこのコードを変更する必要がありますが、それで作業を開始できます。

それを書く

this.connection.Open();

try
{
    var parameters = new
        {
            Data = File.ReadAllBytes(...);
        };
    return connection.Execute("INSERT INTO Data (Data) VALUES (@Data)", parameters);
}
finally
{
    this.connection.Close();
}

それを読む

this.connection.Open();

try
{
    var parameters = new { Id = 1 };
    return connection.Query(
        "SELECT Data FROM dbo.Data WHERE Id = @Id", parameters)
        .Select(q => q.Data as byte[])
        .Single();
}
finally
{
    this.connection.Close();
}
于 2012-09-20T11:37:31.363 に答える