ورود

View Full Version : سوال: مشكل توابع Clr با ركوردهاي Null



ali_md110
سه شنبه 02 آذر 1389, 00:55 صبح
با سلام
من با تابع زير تابع شمسي ساخته و توي اسكيول سرور استفاده ميكنم ولي با ركوردهاي Null خطاي زير رو برميگردونه

'toshamsi' failed because parameter 1 is not allowed to be null and is not an output parameter.

در ضمن داخل تابع دستوراتي جهت چك كرن مقدار null رو هم قرار ميدم ولي باز خطا بر ميگردونه

اين هم تابع


public static SqlString toPersianDate(DateTime dt)
{
string result = "";
if (dt != null)
{
PersianCalendar pc = new PersianCalendar();
int year = pc.GetYear(dt);
int month = pc.GetMonth(dt);
int day = pc.GetDayOfMonth(dt);
result = year.ToString().PadLeft(4, '0') + "/" + month.ToString().PadLeft(2, '0') + "/" + day.ToString().PadLeft(2, '0');
}
return new SqlString(result);
}

tooraj_azizi_1035
سه شنبه 02 آذر 1389, 10:18 صبح
سلام،
داخل Stored Procedure اگه متغیرت رو از نوع DateTime تعریف کردی اونو به نوع داده SqlDateTime تغییر بده.


:خجالت:.Ideas are everything, Microsoft Corporation

ali_md110
چهارشنبه 03 آذر 1389, 02:29 صبح
متشكرم از توجهتون
متغير رو از نو SqlDateTime تعريف كردم

public static SqlString toPersianDate(SqlDateTime dt)
{
string result = "";
if (! dt.IsNull)
{
PersianCalendar pc = new PersianCalendar();
int year = pc.GetYear(dt.Value);
int month = pc.GetMonth(dt.Value);
int day = pc.GetDayOfMonth(dt.Value);
result = year.ToString().PadLeft(4, '0') + "/" + month.ToString().PadLeft(2, '0') + "/" + day.ToString().PadLeft(2, '0');
}
return new SqlString(result);
}
جواب داد