دسته بندی ها
19:53 1400/04/04

بررسی خالی بودن یک ستون در نتیجه کویری در سی شارپ

مشخصات سوال کننده :
کاربر : mojtabahakimian     امتیاز کاربر : 155     رتبه کاربر : 10
دسته بندی : سی شارپ WPF Sql Server Entity Framework

به این سوال امتیاز بدهید    0
تعداد بازدید این سوال : 3802
هوش مصنوعی

پاسخ هوش مصنوعی

برای بررسی خالی بودن ستون ZOR در نتیجه کویری شما، ابتدا باید اطمینان حاصل کنید که نوع داده ای که از کویری دریافت می کنید درست است. چون شما از یک تابع SUM استفاده کرده اید، نتیجه ممکن است به صورت عددی یا NULL باشد. در زیر یک نمونه کد برای بررسی این موضوع آورده شده است:

var result = dbms.Database.SqlQuery<Nullable<decimal>>("SELECT SUM(dbo.DEED_DTL.BES - dbo.DEED_DTL.BED) AS ZOR FROM MyDatabase").SingleOrDefault();

if (result.HasValue) {
    // اگر ZOR خالی نیست، کدهای مورد نظر خود را اینجا بنویسید
    Console.WriteLine("ZOR value is: " + result.Value);
} else {
    // اگر ZOR خالی است، می توانید اینجا درماندگی یا محتوای دیگری را مدیریت کنید
    Console.WriteLine("ZOR is NULL.");
}

در اینجا از نوع داده <Nullable<decimal>> استفاده کرده ایم تا بتوانیم مقادیر NULL را نیز بررسی کنیم. همچنین از متد SingleOrDefault() برای دریافت یک مقدار یا NULL استفاده کرده ایم.

با این کد، اکنون می توانید بررسی کنید که آیا مقدار ZOR خالی است یا خیر و عمل مناسب را انجام دهید. امیدوارم این کد به شما کمک کند.

به این پاسخ امتیاز بدهید    0
امتیاز: - رتبه: -
پاسخ دهنده : hamid_b 13:12 1400/04/05

با توجه به اینکه شما از انتیتی فریم ورک استفاده می کنید بهتره به صورت Linq دستوراتتون رو بنویسید. در این صورت دسترسی به ستونها و بررسی مقادیر اونها خیلی راحتتره.

اما نکته مهم اینه که شما می تونید بررسی کنید که کوئری شما نتیجه داشته یا نه. مثلا 10 تا سطر برگردونده یا اینکه هیچی. ولی اینکه چک کنید یک ستون null باشه نمیشه. شما یا باید سطرها رو چک کنید یا اینکه یک سلول خاص رو کنترل کنید.

در هر صورت اون ستون که شما می خواید کنترلش کنید شامل چندین سطر هست و باید سطرهاش چک بشه که مقدار دارن یا نه.

به عنوان مثال

var myQuery = _database.CustomerTbl.ToList();
if (myQuery.Count() > 0)
{
   ...
}

 

تو مثال خودتون هم دقیقا اومدید همین کار رو کردید

if (!DBNull.Value.Equals(row[fieldName]))

 

یعنی شما هم مقدار یک سطر و ستون  (یک سلول) رو دارید کنترل میکنید.

به این پاسخ امتیاز بدهید    0
امتیاز: 518 رتبه: 4
2 نظر
mojtabahakimian : توی دستورات پیچیده LINQ ممکنه درست عمل نکنه اینه که از SQL Query استفاده میکنم

امتیاز کاربر : 155   رتبه کاربر : 10   تاریخ ثبت : 02:49 1400/04/05
saedbfd : شما همه دستوراتی که با Sql میتونید بنویسید با Linq هم میتونید بنویسید.

امتیاز کاربر : 1664   رتبه کاربر : 1   تاریخ ثبت : 07:05 1400/04/05
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود