Решил переписать утилитку по записи файлов на сервер
было для SQLServer:
cmdInsert.Parameters.Add("@name",SqlDbType.VarChar);
cmdInsert.Parameters.Add("@body",SqlDbType.Image);
cmdInsert.CommandText=UpdCmdText;
for (int i=0; i<FilesInfo.Length;i++)
{
FileStream fs=new FileStream(dir.FullName+"\\"+FilesInfo[i].ToString(),FileMode.Open,FileAccess.Read);
BinaryReader br=new BinaryReader(fs);
Byte[] bFile=br.ReadBytes(Convert.ToInt32(fs.Length));
cmdInsert.Parameters["@name"].Value=FilesInfo[i].FullName.Remove(0,PathDir.Length+1);
cmdInsert.Parameters["@body"].Value=bFile;
cmdInsert.ExecuteNonQuery();
}
переделал для OleDB (хотел сделать универсальную для любой БД):
command.Parameters.Add("@fName", OleDbType.VarChar);
command.Parameters.Add("@fBody", OleDbType.LongVarBinary);
foreach (var file in fileList)
{
// -- готовим файл
var br = new BinaryReader(File.Open(dir4Export.FullName + "\\" + file, FileMode.Open, FileAccess.Read));
var fileBody = br.ReadBytes((int) file.Length);
// -- готовим параметры
command.Parameters["@fName"].Value = file.Name;
command.Parameters["@fBody"].Value = fileBody;
try
{
connection.ConnectionString = ConfigurationManager.ConnectionStrings["DistribDB"].ConnectionString;
using (connection)
{
connection.Open();
ret = command.ExecuteNonQuery();
....
и теперь в БД пишуться "пустые" файлы. ну то есть когда я их потом обратно пытаюсь считать - получается что файлы равны 0кб
в чем ошибка? неправильно выбрал формат типа данных? или что?
Незнание - порождает стремление...