نمایش یک فیلد از دیتابیس در label

diehard2007

عضو جدید
با سلام و خسته نباشید به شما من در صفحه اصلی برنامه ای که در حال نوشتنش هستم یک متن نوشتم که تعداد گوشیهای ورودی امروز رو می خوام نشون بدم البته درون یک لیبل می خوام اون تعداد رو نشون بدم حالا نمی دونم باید چه کار کنم مثلا من در تاریخ 31/5/1390 ده تا گوشی ثبت کردم می خوام این 10 تا گوشی رو البته تعدادش رو برام برگردونه یعنی اینطوری بشه تعداد گوشیهای ورودی امروز : 10
و اگر فردا یعنی در تاریخ 1/6/1390 بیست تا گوشی وارد تعمیرگاه شد بزنه : تعداد گوشیهای ورودی امروز : 20

ممنون می شم کمکم کنید .
 

negin17h

مدیر تالارهای مهندسی کامپیوتر و رباتیکمتخصص #C
مدیر تالار
با سلام و خسته نباشید به شما من در صفحه اصلی برنامه ای که در حال نوشتنش هستم یک متن نوشتم که تعداد گوشیهای ورودی امروز رو می خوام نشون بدم البته درون یک لیبل می خوام اون تعداد رو نشون بدم حالا نمی دونم باید چه کار کنم مثلا من در تاریخ 31/5/1390 ده تا گوشی ثبت کردم می خوام این 10 تا گوشی رو البته تعدادش رو برام برگردونه یعنی اینطوری بشه تعداد گوشیهای ورودی امروز : 10
و اگر فردا یعنی در تاریخ 1/6/1390 بیست تا گوشی وارد تعمیرگاه شد بزنه : تعداد گوشیهای ورودی امروز : 20

ممنون می شم کمکم کنید .

از دستور Count در سمت بانک میتونید کمک بگیرید :gol:
 

diehard2007

عضو جدید
چطوری باید یک فیلد از دیتابیس رو تو لیبل نشون بدم کدش رو نمی دونم بعد تو یک روز مشخص کنم چند تا ورودی داشتم
 

golemaryam_1983

عضو جدید
کاربر ممتاز
چطوری باید یک فیلد از دیتابیس رو تو لیبل نشون بدم کدش رو نمی دونم بعد تو یک روز مشخص کنم چند تا ورودی داشتم

سلام دوست عزیز این یک نمونه هست البته من توی تکس باکس نمایش دادم .
کد:
SqlCommand com = new SqlCommand("select count(name) from faktor where code='" + Convert.ToInt32(textBox9.Text) + "' and date='" + textBox11.Text + "' ", con);
            com.Connection.Open();
            int counter = (int)com.ExecuteScalar();
            com.Connection.Close();

           if (counter > 0)
            {


                //نام شخص
                SqlDataAdapter da1 = new SqlDataAdapter("select * from faktor where code='" + Convert.ToInt32(textBox9.Text) + "' ", con);
                DataSet ds1 = new DataSet();
                da1.Fill(ds1, "faktor");
                DataTable dt1 = new DataTable();
                dt1 = ds1.Tables[0];
                textBox10.Text = dt1.Rows[0][1].ToString();


دوست عزیز اگر بخواید که بدونید که در یک روز چه تعداد ورودی دارید باید تاریخ رو در پایگاه ثبت کنید و بعد هنگام فراخوانی تاریخ مورد نظر رو با پایگاه مقایسه کنید.



با تشکر
 

negin17h

مدیر تالارهای مهندسی کامپیوتر و رباتیکمتخصص #C
مدیر تالار
سلام دوست عزیز این یک نمونه هست البته من توی تکس باکس نمایش دادم .
کد:
SqlCommand com = new SqlCommand("select count(name) from faktor where code='" + Convert.ToInt32(textBox9.Text) + "' and date='" + textBox11.Text + "' ", con);
            com.Connection.Open();
            int counter = (int)com.ExecuteScalar();
            com.Connection.Close();

           if (counter > 0)
            {


                //نام شخص
                SqlDataAdapter da1 = new SqlDataAdapter("select * from faktor where code='" + Convert.ToInt32(textBox9.Text) + "' ", con);
                DataSet ds1 = new DataSet();
                da1.Fill(ds1, "faktor");
                DataTable dt1 = new DataTable();
                dt1 = ds1.Tables[0];
                textBox10.Text = dt1.Rows[0][1].ToString();



دوست عزیز اگر بخواید که بدونید که در یک روز چه تعداد ورودی دارید باید تاریخ رو در پایگاه ثبت کنید و بعد هنگام فراخوانی تاریخ مورد نظر رو با پایگاه مقایسه کنید.



با تشکر

مرسی عزیز، فقط تا جایی که میتونید از پارامتر استفاده کنید چون این روش اصولی نیست :gol:
 

golemaryam_1983

عضو جدید
کاربر ممتاز
مرسی عزیز، فقط تا جایی که میتونید از پارامتر استفاده کنید چون این روش اصولی نیست :gol:

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



با تشکر
 

diehard2007

عضو جدید
آقا ممنون که یه نمونه گذاشتید ولی من نتونستم ازش استفاده کنم . من در فرمم یک لیبل دارم و فقط می خوام درون اون لیبل مقدار را نمایش بدم . مثلا در روز 3/6/1390 چهارتا گوشی وارد شده که عدد 1 رو بر می گردونه نمی دونم مشکل از کجاست :

DataTable dt3 = new DataTable();
SqlConnection cn3 = new SqlConnection("Data Source=.;Initial Catalog=Mobile;Integrated Security=True");
cn3.Open();
SqlCommand cmd3 = new SqlCommand("select count(LoginDate)from Customers where LoginDate='" + lblVorodiEmroz.Text + "'", cn3);
SqlDataAdapter da3 = new SqlDataAdapter(cmd3);
da3.Fill(dt3);
if (dt3.Rows.Count > 0)
{
lblVorodiEmroz.Text = "" + dt3.Rows.Count;
}
cn3.Close();
 

negin17h

مدیر تالارهای مهندسی کامپیوتر و رباتیکمتخصص #C
مدیر تالار
آقا ممنون که یه نمونه گذاشتید ولی من نتونستم ازش استفاده کنم . من در فرمم یک لیبل دارم و فقط می خوام درون اون لیبل مقدار را نمایش بدم . مثلا در روز 3/6/1390 چهارتا گوشی وارد شده که عدد 1 رو بر می گردونه نمی دونم مشکل از کجاست :

DataTable dt3 = new DataTable();
SqlConnection cn3 = new SqlConnection("Data Source=.;Initial Catalog=Mobile;Integrated Security=True");
cn3.Open();
SqlCommand cmd3 = new SqlCommand("select count(LoginDate)from Customers where LoginDate='" + lblVorodiEmroz.Text + "'", cn3);
SqlDataAdapter da3 = new SqlDataAdapter(cmd3);
da3.Fill(dt3);
if (dt3.Rows.Count > 0)
{
lblVorodiEmroz.Text = "" + dt3.Rows.Count;
}
cn3.Close();

شما تعداد سطرها را دارید چاپ می کنید . در صورتی این کد درست است که Count از دستور sql حذف گردد.
برای اینکه از count استفاده کنید باید مقدار فیلد را بخونید

کد:
lblVorodiEmroz.Text = dt3.rows[0]["columnName"];
 

negin17h

مدیر تالارهای مهندسی کامپیوتر و رباتیکمتخصص #C
مدیر تالار
سلام و خسته نباشید بازم نشد از این خط ایراد می گیره
مشاهده پیوست 63164

دوست عزیز با کمی دقت مشکل حل می شود. این خطا کاملاً واضح است. شما که فیلد LoginDAte ندارید.
در Select وقتی از Count استفاده می کنید باید اسم به Column دهید:
کد:
Select Count(LoginDate) AS InCount ...
و بعد اسم آن ستون را بکار ببرید:
کد:
lblVorodiEmroz.Text = dt3.rows[0]["InCount"];
 

diehard2007

عضو جدید
دوباره سلام این کدی که زحمتشو کشیدید و گذاشتید که خیلی هم از شما ممنونم . تعداد کل رکوردها را برمی گردونه من می خوام تعداد رکوردها تو روز جاری رو برگردونه یعنی امروز 5/6/1390 هست و اگه 10 تا ورودی گوشی داشتم برنه تعداد ورودی گوشیهای ورودی امروز : 10 و فرداش اگه 6 تا ورودی داشتم بزنه تعداد ورودی گوشیهای امروز : 6 تو اینش گیر کردم دوست عزیز که متاسفانه اسم شما رو هم نمی دونم .
 

diehard2007

عضو جدید
با سلام و خسته نباشید من از این کد استفاده می کنم و بجای اینکه یه مقدار یعنی امروز 5 تا گوشی ثبت شده می زنه 0 نمی دونم مشکل از کجاست دستور select رو در پایگاه داده اینطوری می نویسم و جواب هم می ده اما تو ویژوال نمی دونم چطوری باید بنویسم . Select Count(LoginDate) AS InCount from Customers where LoginDate='1390/6/8'
حالا می خوام جای 8/6/1390 اون لیبلم پر بشه

DataTable dt3 = new DataTable();
SqlConnection cn3 = new SqlConnection("Data Source=.;Initial Catalog=MobileYazdi;Integrated Security=True");
cn3.Open();
SqlCommand cmd3 = new SqlCommand("Select Count(LoginDate) AS InCount from Customers where LoginDate='"+lblVoroodiEmroz.Text+"'", cn3);
SqlDataAdapter da3 = new SqlDataAdapter(cmd3);
da3.Fill(dt3);
if (dt3.Rows.Count > 0)
{
lblVoroodiEmroz.Text =
"" + dt3.Rows[0]["InCount"].ToString();
}
cn2.Close();
 

negin17h

مدیر تالارهای مهندسی کامپیوتر و رباتیکمتخصص #C
مدیر تالار
با سلام و خسته نباشید من از این کد استفاده می کنم و بجای اینکه یه مقدار یعنی امروز 5 تا گوشی ثبت شده می زنه 0 نمی دونم مشکل از کجاست دستور select رو در پایگاه داده اینطوری می نویسم و جواب هم می ده اما تو ویژوال نمی دونم چطوری باید بنویسم . SelectCount(LoginDate)AS InCount from Customers where LoginDate='1390/6/8'
حالا می خوام جای 8/6/1390 اون لیبلم پر بشه

DataTable dt3 = newDataTable();
SqlConnection cn3 = newSqlConnection("Data Source=.;Initial Catalog=MobileYazdi;Integrated Security=True");
cn3.Open();
SqlCommand cmd3 = newSqlCommand("Select Count(LoginDate) AS InCount from Customers where LoginDate='"+lblVoroodiEmroz.Text+"'", cn3);
SqlDataAdapter da3 = newSqlDataAdapter(cmd3);
da3.Fill(dt3);
if (dt3.Rows.Count > 0)
{
lblVoroodiEmroz.Text =
"" + dt3.Rows[0]["InCount"].ToString();
}
cn2.Close();

اگر تاريخ را با فرمت میلادی ذخيره کرده اید که به این شکل جواب نخواهد داد.
 

diehard2007

عضو جدید
سلام مشکل همین جاست که تاریخ به شمسی ذخیره شده حالا باید چه کار کنم بدجوری گیرم
 

negin17h

مدیر تالارهای مهندسی کامپیوتر و رباتیکمتخصص #C
مدیر تالار
سلام مشکل همین جاست که تاریخ به شمسی ذخیره شده حالا باید چه کار کنم بدجوری گیرم

مطمئنی به همین شکل هست و مثلاً به فرمت 1390/05/06 ذخیره نشده؟ شاید برای همین جواب نمیگیری!
 

diehard2007

عضو جدید
سلام وخسته نباشید به شما دوست عزیز . به نظر شما من چطوری مشکلم رو حل کنم هیچ راهی به ذهنم نمی رسه ممنون میشم راهنمایی کنید
 

negin17h

مدیر تالارهای مهندسی کامپیوتر و رباتیکمتخصص #C
مدیر تالار
سلام وخسته نباشید به شما دوست عزیز . به نظر شما من چطوری مشکلم رو حل کنم هیچ راهی به ذهنم نمی رسه ممنون میشم راهنمایی کنید

میشه بپرسم فیلد در نظر گرفته شده براش چیه؟
سمت بانک کوئری شما جوابی بر میگردونه؟
 

diehard2007

عضو جدید
فیلد مورد نظر nvarchar هست . بله سمت بانک کوئری درست هست از این کوئری استفاده می کنم :

Select Count(Date) AS InCount from Repairs where Date='1390/6/9'

و تعداد 4 رو برمی گردونه و اگه فرداش یعنی 10/6/1390 تعداد گوشیهای وارد شده به تعمیرگاه 15 تا باشه بجای اون دستور بنویسم

Select Count(Date) AS InCount from Repairs where Date='1390/6/10
تعداد 15 رو بر می گردونه یعنی سمت بانک همه چی درست هست

 

negin17h

مدیر تالارهای مهندسی کامپیوتر و رباتیکمتخصص #C
مدیر تالار
فیلد مورد نظر nvarchar هست . بله سمت بانک کوئری درست هست از این کوئری استفاده می کنم :

Select Count(Date) AS InCount from Repairs where Date='1390/6/9'

و تعداد 4 رو برمی گردونه و اگه فرداش یعنی 10/6/1390 تعداد گوشیهای وارد شده به تعمیرگاه 15 تا باشه بجای اون دستور بنویسم

Select Count(Date) AS InCount from Repairs where Date='1390/6/10
تعداد 15 رو بر می گردونه یعنی سمت بانک همه چی درست هست


سلام
پس مقداری که سمت فرم میخونید احتمالاً برعکس هیت. trace خط به خط کنید و مطمئن شید که تاریخ به همین شکلی که سمت بانک اجرا میگیرید وارد میشه. ممکنه برعکس شده باشه. در ضمن استفاده از پارامترها هم برای کدنویسی بهتر است از وارد کردن text مثلاً جعبه متن :gol:
 

diehard2007

عضو جدید
سلام برنامه رو trace کردم همین طوری که گفتم تاریخ ذخیره شده و مشکلی نداشت چه کار کنم بدجوری اعصابمو خورد کرده نمونه کدی ندارید که بشه این مشکلو حل کرد دوست عزیز ؟
 

negin17h

مدیر تالارهای مهندسی کامپیوتر و رباتیکمتخصص #C
مدیر تالار
سلام برنامه رو trace کردم همین طوری که گفتم تاریخ ذخیره شده و مشکلی نداشت چه کار کنم بدجوری اعصابمو خورد کرده نمونه کدی ندارید که بشه این مشکلو حل کرد دوست عزیز ؟

میشه کد رو اینجا آپلود کنید تا من چکش کنم؟ :gol:
 

diehard2007

عضو جدید
DataTable dt3 = newDataTable();
OleDbConnection cn3 = newOleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Mobile.mdb;Persist Security Info=True");
cn3.Open();
OleDbCommand cmd3 = newOleDbCommand("Select Count(LoginDate) AS InCount from Customers where LoginDate='"+lblVoroodiEmroz.Text+"'", cn3);
OleDbDataAdapter da3 = newOleDbDataAdapter(cmd3);
da3.Fill(dt3);
if (dt3.Rows.Count > 0)
{
lblVoroodiEmroz.Text =
"" + dt3.Rows[0]["InCount"].ToString();
}
cn3.Close();
 

negin17h

مدیر تالارهای مهندسی کامپیوتر و رباتیکمتخصص #C
مدیر تالار
DataTable dt3 = newDataTable();
OleDbConnection cn3 = newOleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Mobile.mdb;Persist Security Info=True");
cn3.Open();
OleDbCommand cmd3 = newOleDbCommand("Select Count(LoginDate) AS InCount from Customers where LoginDate='"+lblVoroodiEmroz.Text+"'", cn3);
OleDbDataAdapter da3 = newOleDbDataAdapter(cmd3);
da3.Fill(dt3);
if (dt3.Rows.Count > 0)
{
lblVoroodiEmroz.Text =
"" + dt3.Rows[0]["InCount"].ToString();
}
cn3.Close();

فکر کنم مشکل از اون تک کوتیشن ها باشه. یه دور بدون اونا امتحان کن. چون با پارامتر و یا تکست که کار می کنی خودش می فهمه رشته است. امتحانش کن به هر حال. دوست داشتی هم میتونی سورس رو برا من بفرستی کامل چکش میکنم و بهت میگم :gol:
 

Similar threads

بالا