hdv212
سه شنبه 21 فروردین 1386, 03:15 صبح
سلام بچه ها
من در حال نوشتن یه برنامه دبیرخانه هستم که اسناد رو به صورت عکس با پسوند JPG میگیره و در درون فیلدی از نوع (VarBinary(max که در Sql 2005 هست به صورت byte[] میریزه.
منتها مشکل اینجاس که ممکنه هر رکوردی دارای این فیلد نباشه (یعنی این فیلد رو وارد نکنه) پس باید در موقع مثلا Insert یه مقدار Null قرار بگیره کد من اینه :
command.CommandText = "UPDATE t_Archive SET DateSource=@DateSource, TypeMailID=@TypeMailID,Doc=@Doc WHERE ArchiveID = @ArchiveID";
SqlParameter p16;
if (this.openFileDialog1.FileName == string.Empty)
p16 = new SqlParameter("@Doc", System.DBNull.Value);
else
p16 = new SqlParameter("@Doc", this.ReadBitmap2ByteArray(this.openFileDialog1.Fil eName));
دقت کنید در قسمت تعریف پارامتر، در قسمت اول مقدار System.DBNull.Value در دیتابیس قرار میگیره که یعنی سندی وجود نداره(اگه سندی وجود داشته باشه از تعریف دوم استفاده میکنه)
مشکل اینجاس در زمان Update کردن جدول این پیامو میده :
System.Data.SqlClient.SqlException: Implicit conversion from data type nvarchar to varbinary(max) is not allowed. Use the CONVERT function to run this query. .....
مشکل از کجاس ؟ ومن چطوری به دیتابیس بگم که این فیلد رو نمیخواد Uopdate یا insert کنی ؟؟
مرسی
من در حال نوشتن یه برنامه دبیرخانه هستم که اسناد رو به صورت عکس با پسوند JPG میگیره و در درون فیلدی از نوع (VarBinary(max که در Sql 2005 هست به صورت byte[] میریزه.
منتها مشکل اینجاس که ممکنه هر رکوردی دارای این فیلد نباشه (یعنی این فیلد رو وارد نکنه) پس باید در موقع مثلا Insert یه مقدار Null قرار بگیره کد من اینه :
command.CommandText = "UPDATE t_Archive SET DateSource=@DateSource, TypeMailID=@TypeMailID,Doc=@Doc WHERE ArchiveID = @ArchiveID";
SqlParameter p16;
if (this.openFileDialog1.FileName == string.Empty)
p16 = new SqlParameter("@Doc", System.DBNull.Value);
else
p16 = new SqlParameter("@Doc", this.ReadBitmap2ByteArray(this.openFileDialog1.Fil eName));
دقت کنید در قسمت تعریف پارامتر، در قسمت اول مقدار System.DBNull.Value در دیتابیس قرار میگیره که یعنی سندی وجود نداره(اگه سندی وجود داشته باشه از تعریف دوم استفاده میکنه)
مشکل اینجاس در زمان Update کردن جدول این پیامو میده :
System.Data.SqlClient.SqlException: Implicit conversion from data type nvarchar to varbinary(max) is not allowed. Use the CONVERT function to run this query. .....
مشکل از کجاس ؟ ومن چطوری به دیتابیس بگم که این فیلد رو نمیخواد Uopdate یا insert کنی ؟؟
مرسی