PDA

View Full Version : سوال: خطا CS0161 'search.baaarname()': not all code paths return a value test



mahlake
یک شنبه 05 اردیبهشت 1395, 03:43 صبح
سلام خدمت مهندسین عزیز من به یه خطا برخوردم که به طرز عجیبی جوابش رو پیدان نکردم...
من یه کلاس تو پروژه ام درست کردم که قراره یه دیتاتیبل رو توی فرم یک پرکنه اما ارور زیر رو میده...
Severity Code Description Project File Line
Error CS0161 'search.baaarname()': not all code paths return a value test D:\test (2)\test\test\search.cs 32

به نظرتون مشکل از کوجاست؟
اینم کد:

TextBox shb = new TextBox();
public search(TextBox _shb)
{
shb.Text = _shb.Text;
}


public DataTable baaarname()
{
try
{
if (con.State != ConnectionState.Open)
{
con.Open();
}
DataTable sqlSet = new DataTable();
SqlDataAdapter ss2 = new SqlDataAdapter("SELECT id , shb , shm , shsh, plk ,clr , cpn , mob ,cid , rid from sanad where shb like N'" + shb.Text + "'", con);
sqlSet = new DataTable();
sqlSet.Clear();
ss2.Fill(sqlSet);
if (con.State == ConnectionState.Open)
{
con.Close();
}
return sqlSet;
}
catch (Exception x)
{
MessageBox.Show("لطفا با پشتیبانی تماس بگیرید", "!!!پیغام", MessageBoxButtons.OK, MessageBoxIcon.Stop);
}
}


اینم کد فرم یک:



search ba = new search(shb);
newmeghdar= ba.baaarname();

محمد رضا فاتحی
یک شنبه 05 اردیبهشت 1395, 04:58 صبح
سلام...
وقتی یه تابع می نویسید باید این اطمینان رو داشته باشید که هر اتفاقی سر برنامه بیاد یه مقداری باز می گرده...
الان تو تابع شما اگه برنامه به بلاک catch بره چیزی برگشت داده نمی شه...می تونید تو این بلاک با return null مشکلتون رو حل کنید

mahlake
یک شنبه 05 اردیبهشت 1395, 05:33 صبح
سلام...
وقتی یه تابع می نویسید باید این اطمینان رو داشته باشید که هر اتفاقی سر برنامه بیاد یه مقداری باز می گرده...
الان تو تابع شما اگه برنامه به بلاک catch بره چیزی برگشت داده نمی شه...می تونید تو این بلاک با return null مشکلتون رو حل کنید
با سلام و ممنون از راهنماییتون و وقتی که برای بنده میگذارید...
میشه خواهش کنم که یک مثال برای بنده بزنید؟ ترجیحا با همون کدی که گذاشتم...
با تشکر مجدد

محمد رضا فاتحی
یک شنبه 05 اردیبهشت 1395, 05:37 صبح
public DataTable baaarname()
{
try
{
if (con.State != ConnectionState.Open)
{
con.Open();
}
DataTable sqlSet = new DataTable();
SqlDataAdapter ss2 = new SqlDataAdapter("SELECT id , shb , shm , shsh, plk ,clr , cpn , mob ,cid , rid from sanad where shb like N'" + shb.Text + "'", con);
sqlSet = new DataTable();
sqlSet.Clear();
ss2.Fill(sqlSet);
if (con.State == ConnectionState.Open)
{
con.Close();
}
return sqlSet;
}
catch (Exception x)
{
MessageBox.Show("لطفا با پشتیبانی تماس بگیرید", "!!!پیغام", MessageBoxButtons.OK, MessageBoxIcon.Stop);
return null;
}
}

mahlake
یک شنبه 05 اردیبهشت 1395, 05:41 صبح
public DataTable baaarname()
{
try
{
if (con.State != ConnectionState.Open)
{
con.Open();
}
DataTable sqlSet = new DataTable();
SqlDataAdapter ss2 = new SqlDataAdapter("SELECT id , shb , shm , shsh, plk ,clr , cpn , mob ,cid , rid from sanad where shb like N'" + shb.Text + "'", con);
sqlSet = new DataTable();
sqlSet.Clear();
ss2.Fill(sqlSet);
if (con.State == ConnectionState.Open)
{
con.Close();
}
return sqlSet;
}
catch (Exception x)
{
MessageBox.Show("لطفا با پشتیبانی تماس بگیرید", "!!!پیغام", MessageBoxButtons.OK, MessageBoxIcon.Stop);
return null;
}
}

آهان حالا فهمیدم مشکل کجا بود واقعا ممنون یک هفته درگیرش بودم و مشکل رو نمیفهمیدم.. راه حلش رو هم جایی هم پیدا نمی کردم...
مرسیییی:قلب::قلب::قلب::قلب::ق ب::قلب::قلب: