مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

sg.programmer

عضویت از 1393/06/30

خطای Object reference not set to an instance of an object.

  • پنجشنبه 26 فروردین 1395
  • 00:07
تشکر میکنم

سلام این دستور چرا در بلوک X خطای بالا را میده . در اسکیوال تست کردم خروجی داره مشکلی نداره - مقدار vosId را هم تست کردم اونم مقدار داره. وقتی شرط where را از بلوک x بر میدام درست میشه.

در ضمن بلوک y درست عمل میکنه.

 

 else if (vosCheking == "x")
        {

             cmd.CommandText = "SELECT TOP 1 [bazSubject] from [t_Baz] Where  [vosId] = " + vosIds.ToString();
             txt = (cmd.ExecuteScalar() != DBNull.Value ? cmd.ExecuteScalar().ToString() : "-");
        }
        else if (vosCheking == "y")
        {

         cmd.CommandText = "SELECT  TOP 1 [Type] from  [t_Par]  Where   [vosId] = " + vosIds.ToString() + " AND parType = N'ToY' ";
            txt = (cmd.ExecuteScalar() != DBNull.Value ? cmd.ExecuteScalar().ToString() : "-");
       }   

 

مقدار vosId هم از طریق TemplateField از گرید وارد تابع میشه و خروجی تابع به گرید انتقال پیدا میکنه.

 

 <asp:TemplateField HeaderText="آخرین رویداد"  >
                                        <ItemTemplate>
                                                        <a href="#"> <%#FindTEventINSQL(Eval("vosStatus"),Eval("vosId")) %> </a>
                                        </ItemTemplate>
                                    </asp:TemplateField>

 

 

پاسخ های این پرسش

تعداد پاسخ ها : 1 پاسخ
کاربر سایت

sg.programmer

عضویت از 1393/06/30

  • پنجشنبه 26 فروردین 1395
  • 00:21

تست کردم چون تعدادی از سطرهای جدول هیچ مقداری نداره  و null هست این خطا را صادر میکنه. چطوری باید رفع کرد؟

من این شرط را گذاشتم انگار تاثیر نداره؟؟؟؟؟

cmd.ExecuteScalar() != DBNull.Value ? cmd.ExecuteScalar().ToString() : "-"

 

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)