PDA

View Full Version : سوال: یافتن یک سطر در جدول دیتابیس اکسس از طریق کوئری در دیتاست



elahe1393
سه شنبه 29 مهر 1393, 10:53 صبح
سلام من در برنامه یه سری گزارش بیمار دارم که تو یه گریدویو نمایش داده میشه میخوام وقتی روی یک سطر این گرید ویو کلیک میکنم آی دی گزارش به من داده بشه تا برم داده های مربوط به این گزارش رو از جدول استخراج کنم داده گزارش خودش باید یه آی دی به من بده تا برم تو یه جدول دیگه داده های ریزتر رو برای رسم روی نمودار استخراج کنم الان مشکلم اینه که آی دی گزارش رو از گریدویو میگیرم وقتی میرم تو جدول کوئری میزنم تا داده موردنظرمو دریافت کنم بجای اینکه سطرهای مربوط به اون ای دی رو به من بده کل سطرها رو برمیگردونه تابع استخراج داده ام به شکل زیر هست که باید خروجیش یه جدولی باشه با سطرهای موردنظرم مشکل کد کجاست؟

public DataTable GetReapetSportDevice(string reportID)
{
OleDbConnection ocn = new OleDbConnection();
OleDbCommand ocm = new OleDbCommand();

ocn.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\db\SportDatabase.accdb";

ocm.Connection = ocn;
ocn.Open();

ocm.CommandText = "SELECT * FROM Reapet WHERE Reapet.ReportID = reportID";

ocm.Parameters.AddWithValue("reportID", reportID);

OleDbDataAdapter adapter = new OleDbDataAdapter(ocm);
DataSet ds = new DataSet();
adapter.Fill(ds);
return ds.Tables[0];

}
مگه نباید وقتی دیتاآداپتور فیل میکنه با کوئری مربوطه فیل کنه چرا همه جدول رو برمیگردونه؟

elahe1393
سه شنبه 29 مهر 1393, 11:12 صبح
خودم فهمیدم مشکل چی بود باید قبل از reportID تو کوئری @ بزارم یعنی میشه این!!!!!!!!


public DataTable GetReapetSportDevice(string reportID)
{
OleDbConnection ocn = new OleDbConnection();
OleDbCommand ocm = new OleDbCommand();

ocn.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\db\SportDatabase.accdb";

ocm.Connection = ocn;
ocn.Open();

ocm.CommandText = "SELECT * FROM Reapet WHERE Reapet.ReportID = @reportID";


ocm.Parameters.AddWithValue("@reportID", reportID);


OleDbDataAdapter adapter = new OleDbDataAdapter(ocm);
DataSet ds = new DataSet();
adapter.Fill(ds);
return ds.Tables[0];

juza66
سه شنبه 29 مهر 1393, 11:15 صبح
سلام


اینطوری این سطر رو تغییر بده



ocm.CommandText = "SELECT * FROM Reapet WHERE Reapet.ReportID LIKE '" + reportID +"%';

elahe1393
سه شنبه 29 مهر 1393, 11:16 صبح
سلام


اینطوری این سطر رو تغییر بده



ocm.CommandText = "SELECT * FROM Reapet WHERE Reapet.ReportID LIKE '" + reportID +"%';

مشکل با همون چیزی که گفتم حل شد ممنون