سؤال

ولدي DataSet مع DataTable أن يملأ DataRow احد بشكل صحيح من خلال TableAdapter.

وأنا قادرة على سحب البيانات من DataRow مع رمز مثل هذا:

dataFileID = (int)this.dataFileDataRow["DataFileID"];
dataFileName = (string)this.dataFileDataRow["DataFileName"];
dataFileDate = (DateTime)this.dataFileDataRow["DataFileDate"];

ولدي عمود آخر يسمى datafile Cesar: سيزار من نوع varbinary(max).

وعندما أحاول سحب البيانات هذا العمود من نفس DataRow على النحو الوارد أعلاه أحصل على أي شيء.

byte[] fileFromDatabase = (byte[])this.dataFileDataRow["DataFile"];

إذا وضعت نقطة فاصل في هذا الموقع، ويمكن أن ننظر إلى dataFileDataRow، أن ننظر في الممتلكات ItemArray ونرى أن البيانات الثنائية يجلس في موقف 5 في ItemArray.

وصول

ولقد حاولت ItemArray مباشرة باستخدام مؤشر ولكن لا يتم نسخ صفيف بايت لمتغير fileFromDatabase.

ولقد لاحظت أيضا أن إضافة fileFromDatabase الى السلعة المفضلة ينتج هذا الخطأ:

<اقتباس فقرة>   

و"اسم 'fileFromDatabase' غير موجود في السياق الحالي"

وإعدام ما زال في نفس الكتلة تعريف fileFromDatabase لذلك أنا لا أفهم كيف يمكن ان تكون خارج السياق.

وكنت قد التكوين البصرية استوديو لتعيين الإصدار بدلا من التصحيح. وكان هذا يسبب لي أن لا ترى في الوقت الحقيقي معلومات التصحيح كنت أبحث عنه عند محاولة دراسة fileFromDatabase. بعد التحول من الإصدار إلى تصحيح، وأنا قادرة على رؤية متغير في الهزيع الآن، ويمكن التحقق من أن رمز أعلاه يعمل بشكل صحيح.

هل كانت مفيدة؟

المحلول

ورمز أعلاه يعمل، تأكد من تعيين مصحح لتجميع للتصحيح، NOT الإصدار.

وكيث

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top