سلام من می خوام یک جستجو با نام کالا کنم
با استفاده از id می تونم ولی با استفاده از نام کالا نمی شه
این کد من
var upConnection = new SqlConnection(@"Data Source=.\SQLEXPRESS;Initial Catalog=forshgah;Integrated Security=True;Pooling=False");
var upCommand = new SqlCommand("SELECT ghforosh FROM listkharid WHERE name = "+"'"+comboBox2.Text+"'", upConnection);
upConnection.Open();
SqlDataReader reader = upCommand.ExecuteReader();
reader.Read();
labghymat.Text = reader["ghforosh"].ToString();
upConnection.Close();
این خطا را می ده
Invalid attempt to read when no data is present.
نقل قول: سلام من می خوام یک جستجو با نام کالا کنم
دوست عزیز اگر مقداری که کوری شما بر میگردونه تنها یک سطر است از دستور
command.ExecuteScalar
می توانید استفاده کنید
var upCommand = new SqlCommand("SELECT ghforosh FROM listkharid WHERE name = "+"'"+comboBox2.Text+"'", upConnection);
upConnection.Open();
object Data = upCommand.ExecuteScalar();
Data
--------------
.
.
.
upConnection.Close();
نقل قول: سلام من می خوام یک جستجو با نام کالا کنم
مشکل خطا با کد زیر رفع میشه :
if (reader.Read())
{
if (reader["ghforosh"] != DBNull.Value)
labghymat.Text = reader["ghforosh"].ToString();
}
احتمالا نام را فارسی می خوای جستجو کنی !
در بانک اطلاعاتی نوع فیلد نام رو باید یونیکد انتخاب کنی nchar or nvarchar
ممکنه مشکل از حروفی که تایپ می کنه داره مثلا حرف ی رو ي یا برعکس یا حروف دیگه .
در کل مشکلات کار با فارسی زیاده.
نقل قول: سلام من می خوام یک جستجو با نام کالا کنم
منظورتان این جوری؟
var upConnection = new SqlConnection(@"Data Source=.\SQLEXPRESS;Initial Catalog=forshgah;Integrated Security=True;Pooling=False");
var upCommand = new SqlCommand("SELECT ghforosh FROM listkharid WHERE name = "+"'"+comboBox2.Text+"'", upConnection);
upConnection.Open();
var data = upCommand.ExecuteScalar();
labghymat.Text = data.ToString();
upConnection.Close();
نقل قول: سلام من می خوام یک جستجو با نام کالا کنم
به جای این دستور :
labghymat.Text = data.ToString();
بنویس :
if(data.Read())
{
labghymat.Text = data.ToString();
}
نقل قول: سلام من می خوام یک جستجو با نام کالا کنم
این که اصلا دیگه جستجو نکرد درست می گید نام کالا فارسیی
نقل قول: سلام من می خوام یک جستجو با نام کالا کنم
این خط رو هم اصلاح کن :
var data = upCommand.ExecuteScalar();
به جاش بنویس :
var data = upCommand.ExecuteReader();
نقل قول: سلام من می خوام یک جستجو با نام کالا کنم
object Data=(object)cmd.ExecuteScalar() ;
string Data=(string)cmd.ExecuteScalar() ;
از اینها هم میتوانی استفاده کنی
نقل قول: سلام من می خوام یک جستجو با نام کالا کنم
if(data.Read())
{
labghymat.Text = data.ToString();
}
این اصلا شرط رو چک نمی کنه
نقل قول: مشکل خطا با کد زیر رفع میشه :
این مشکل را حل نکرد چون اسم کالا برام نتونست پیدا کنه
این شرط باعث پریدن از چاپ اسم کالا می شه
نقل قول: مشکل خطا با کد زیر رفع میشه :
این کار مسئله را دور زد یعنی این شرط فقط باعث شد نام کالا بازم چاپ نشه
فقط خطا نگرفت
نقل قول: سلام من می خوام یک جستجو با نام کالا کنم
این دستور رو :
var upCommand = new SqlCommand("SELECT ghforosh FROM listkharid WHERE name = "+"'"+comboBox2.Text+"'", upConnection);
رو با این عوض کن :
var upCommand = new SqlCommand("SELECT ghforosh FROM listkharid WHERE name = "+"N'"+comboBox2.Text+"'", upConnection);
نقل قول: سلام من می خوام یک جستجو با نام کالا کنم
کاملا درست بود ممنون علامت N باعث شد فارسی خونده شود