Object reference not set to an instance of an object.
مشکل کجاست؟؟؟؟
Object reference not set to an instance of an object.
مشکل کجاست؟؟؟؟
از آبجکتت نمونه سازی نکردی، بایستی از کلمه ی کلیدی new استفاده کنی :
object obj = new object();
با این کار رفرنسی که از شی object در حافظه ی stock ساخته شده، به نمونه اون در حافظه ی heap اشاره میکنه، پیغام خطای شما هم همین رو میگه، یعنی رفرنسی که از آبجکت ساخته شده، به هیچ نمونه ای از اون آبجکت اشاره نمیکنه.
می تونید بلافاصله همون جایی که تعریفش کردید اینکار رو بکنید
این قسمت تعریف آبجکته:
// Declare global objects...
SqlConnection objConnection;
SqlDataAdapter objDataAdapter;
DataSet objDataSet;
DataView objDataview;
CurrencyManager objCurrencyManager;
private void FillDataSetAndView()
{
// Initialize a new instance of the DataSet objects...
objDataSet = new DataSet();
// Fill the DataSet objects with data...
objDataAdapter.Fill(objDataSet, "test");
// Set the DataView object to the DataSet objects...
objDataview = new DataView(objDataSet.Tables["test"]);
// Set our CurrencyManager object to the DataView objects...
objCurrencyManager = (CurrencyManager)(this.BindingContext[objDataview]);
با تشکر.
ببخشید اینو داخل پرانتز فرض کنید. آقا یا خانم mammad_kami لطفا از تگهای کد و همچنین alignment در هنگام وارد کردن کد خود استفاده کنید تا خوانایی کد شما در سایت بیشتر شود.
در ضمن خطی که خطا در آن رخ داده را مشخص نکرده اید
دوست عزیز بهتر بود خطی رو که خطا در این اتفاق میفتاد رو مشخص میکردی، به هر حال شما از آبجکت های اولیه که اعلان کردی، این دو تا رو مقدار دهی نکردی :
SqlConnection objConnection;
SqlDataAdapter objDataAdapter;
و احتمالا در این قسمت از شما ایراد میگیره :
objDataAdapter.Fill(objDataSet, "test");
وقتی که صفحه پاسخگویی به تایپک باز شد در کنار ابزارهای موجود یه ابزار با علامت # وجود داره که اگه رو اون کلیک کنی میتونی کدت رو داخل تگ کد که برات ایجاد میکنه بنویسیچه جوری؟ بلد نیستم
وقتی قراره برای اولین بار از آبجکتت استفاده کنی از new استفاده کن یا میتونی اونو تو load فرمت استفاده کنی تا بلافاصله بعد از load شدن فرم تعریف بشه که البته این روش خوبی نیستکجا باید از new استفاده کنم؟ یه ذره بیشتر توضیح بدین.
یه همچین چیزی تو کدی که فرستادی نبود کدت رو کامل بذارنه! زمان فرا خوانی ایراد میگیره. اینجا:
objCurrencyManager.Position += 1;
خط زیر اشتباه است:
objCurrencyManager = (CurrencyManager)(this.BindingContext[objDataview]);
باید به BindingManagerBase تبدیلش کنید و objCurrencyManager از همین نوع باشه.
بله درست میفرمایید، اشکال از اون قسمت نبود (اشکال از من بود که قاطی کردم سلسله مراتب وراثتی رو!)ولی من کدمو از یه sample برداشتم، فکر نکنم ایراد داشته باشه!
من هم با iranrose63 موافقم، نمونه برنامه رو کامل بگذارید بهتر است.
از تگ کد چه جوری می تونم استفاده کنم؟ کجاست؟ پیدا نکردم.
بگید تا بتونم کدمو کامل بذارم!
وقتی روی دکمه ارسال پاسخ کلیک میکنی یه صفحه برات باز می کنه من تو شکل زیر بهت نشون دادم که چه طوری تگ کد رو بیاری
ممنون! ولی اصلا اینجوری نیست، برای من مثل توی عکس ضمیمه ست:
بخاطر تنظیمات کاربری است: به قسمت "کنترل پنل کاربر" رفته (لینکش در بالای صفحه) و در قسمت "گزینه های کاربر" و سپس از قسمت "اختیارات نویسنده"، و از قسمت "حالت نمایش ویرایشگر" از کامبو باکس روبرویش گزینه "جعبه نوشته ساده" رو به "سیستم پیشرفته WYSIWYG" تغییر بدید.
این قسمت تعاریفم:
// Declare global objects...
SqlConnection objConnection;
SqlDataAdapter objDataAdapter;
DataSet objDataSet;
DataView objDataview;
CurrencyManager objCurrencyManager;
privatevoid FillDataSetAndView()
{
// Initialize a new instance of the DataSet objects...
objDataSet = newDataSet();
// Fill the DataSet objects with data...
objDataAdapter.Fill(objDataSet, "test");
// Set the DataView object to the DataSet objects...
objDataview = newDataView(objDataSet.Tables["test"]);
// Set our CurrencyManager object to the DataView objects...
objCurrencyManager = (CurrencyManager)(this.BindingContext[objDataview]);
اینم قسمت فراخوانی، که تو این قسمت اروره مذکورو میده:
privatevoid btnMoveNext_Click(object sender, EventArgs e)
{
// Move to the next record...
objCurrencyManager.Position += 1;
// Show the current record position...
ShowPosition();
}
از راهنمایی هاتون ممنون میشم!
آیا متد FillDataSetAndView قبل از رویداد Click (از btnMoveNext) اجرا میشه؟ مطمئن هستید؟
از اساتید برنامه نویسی C# کسی نیست کمکم کنه؟!!
کدمم که گذاشتم، اگه کمکم کنید ممنون میشم.
دوست عزیز همون طور که جناب PC2st.ir گفتن امکان داره که متد FillDataSetAndView قبل از قبل از رویداد کلیک btnMoveNext فراخوانی نشده باشه به کدت یه نگاهی بنداز و اونو خط به خط اجرا کن و مطمئن شو که objCurrencyManager قبل از objCurrencyManager.Position += 1 تعریف میشه وگرنه اون کدی که تو اینجا گذاشتی به نظر نمیاد ایرادی داشته باشه
سلام
من از این sample قبلا استفاده کردم و به مشکلی بر نخوردم. حتما یه جا رو اشتیاه کردین.
این قسمت کد رو چک کنید بد نیست چون تو کد هایی که send کردین ندیدم این قسمتو
{
objConnection= new SqlConnection(_connectionString);
objDataAdapter= new SqlDataAdapter(_Commandtext, objConnection);
initializecomponent();
}
اساتید گرامی!
مشکل من با objCurrencyManager آبجکتی که خودم از نوع CurrencyManager تعریفش کردم هست. هرجا این آبجکت فراخوانی بشه پیغام خطای مذکورو میده.(همونی که موضوع تاپیکه).
هر کس بتونه کمکم کنه ممنونش میشم!