PDA

View Full Version : سوال: پایگاه داده در VS2010



hahaie
شنبه 30 بهمن 1389, 10:54 صبح
سلام دوستان عزیز.کسی که پاسخ ما را در مورد ابزار(کامپوننت)تقویم فارسی در VS2010 نداد:گریه:.اگه کمک کنید و نمونه برنامه ای که پایگاه داده با sql 2008 و حتما C#2010 را بزارید ممنون میشم.

ztx4
شنبه 30 بهمن 1389, 11:03 صبح
سلام
تا اونجا که من می دونم تقویم شمسی به طور مستقیم پشتیبانی نمی شه.
این کلاس رو خودم برای تبدیل تاریخ شمسی به میلادی و برعکس نوشتم.و از این استفاده می کنم.

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


class dateconvert
{
public string miladitoshamsi(DateTime miladidate)
{
PersianCalendar jc = new PersianCalendar();
DateTime date = miladidate;
string persiandate = "";

persiandate += jc.GetYear(date);
persiandate += "/" + jc.GetMonth(date);
persiandate += "/" + jc.GetDayOfMonth(date);

persiandate += " " + jc.GetHour(date);
persiandate += ":" + jc.GetMinute(date);
persiandate += ":" + jc.GetSecond(date);
return persiandate;



}
public DateTime shamsitomiladi(string st)
{
st.Trim();
DateTime miladi = new DateTime();
PersianCalendar pc = new PersianCalendar();
int firstslash=0;
int secondslash=0;
int space=0;
int firstdoubledot=0;
int seconddoubledot=0;
Int16 yearnum=0;
Int16 mountnum=0;
Int16 daynum=0;
Int16 hournum=0;
Int16 minnum=0;
Int16 secnum=0;

//Extract text & Convert to int
try
{
if (st.Contains("/"))
{
{
firstslash = st.IndexOf("/");
secondslash = st.IndexOf("/", firstslash + 1);
}
//check for date
if (firstslash != 0 && secondslash > firstslash + 1)
{
yearnum = Convert.ToInt16(st.Substring(0, firstslash));
if (secondslash > firstslash + 1)
mountnum = Convert.ToInt16(st.Substring(firstslash + 1, secondslash - firstslash - 1));
if (st.Contains(" "))
{
space = st.IndexOf(" ");
daynum = Convert.ToInt16(st.Substring(secondslash + 1, space - secondslash - 1));
}
else
{
daynum = Convert.ToInt16(st.Substring(secondslash + 1));
}
}
}
//Check for time exist
if (st.Contains(" ") && st.Contains(":"))
{
space = st.IndexOf(" ");
firstdoubledot = st.IndexOf(":");
seconddoubledot = st.IndexOf(":", firstdoubledot + 1);

if (firstdoubledot > space + 1)
{
hournum = Convert.ToInt16(st.Substring(space + 1, firstdoubledot - space - 1));
if (seconddoubledot > firstdoubledot + 1)
{
minnum = Convert.ToInt16(st.Substring(firstdoubledot + 1, seconddoubledot - firstdoubledot - 1));
secnum = Convert.ToInt16(st.Substring(seconddoubledot + 1));
}
else
minnum = Convert.ToInt16(st.Substring(firstdoubledot + 1));

}
else
{
MessageBox.Show("تاريخ يا زمان وارد شده معتبر نيست", "خطا 1", MessageBoxButtons.OK, MessageBoxIcon.Error);
return miladi;
}




}
//Convert to date
//check numbers is true
if (yearnum < 9999 && yearnum > 0)
if (mountnum <= 12 && mountnum > 0)
if (daynum <= 31 && daynum > 0)
if (hournum <= 24 && hournum >= 0)
if (minnum <= 60 && minnum >= 0)
if (secnum <= 60 && secnum >= 0)
{
MessageBox.Show("تاريح استخراج شد");
return pc.ToDateTime(yearnum, mountnum, daynum, hournum, minnum, secnum, 0);
}
MessageBox.Show("تاريخ يا زمان وارد شده معتبر نيست", "خطا", MessageBoxButtons.OK, MessageBoxIcon.Error);
return miladi;
}
catch {
MessageBox.Show("تاريخ يا زمان وارد شده معتبر نيست", "خطا 2", MessageBoxButtons.OK, MessageBoxIcon.Error);
return miladi;
}


}


}

اینم باید به برنامه اتون اضافه کنید:

using System.Globalization;

hahaie
دوشنبه 02 اسفند 1389, 08:52 صبح
دوست من سلام! ممنون از کدتان ولی من کامپوننت تقویم فارسی را میخواستم.بیزحمت شما نمونه برنامه ای با مشخصات فوق(در مورد پایگاه داده 2010) ندارید؟

ztx4
سه شنبه 03 اسفند 1389, 09:45 صبح
اگه منظورت کامپوننتی هست که مثل تقویم باز بشه و روزهای یک ماه رو نشون بده نه ندارم.
اما اگه مثل من می خوایی تاریخ شمسی رو توی بانک نگه داری این کلاس به دردت می خوره.
اگه خواستی در این باره نمونه کد برات می گذارم.

hahaie
سه شنبه 03 اسفند 1389, 10:28 صبح
ممنون.شرمنده اگه نمونه کد با سی شارپ 2010 و sql 2008 جواب بده،کمکم میکنه///

ایمان مدائنی
سه شنبه 03 اسفند 1389, 10:53 صبح
كامپوننت هم داره
ايملت رو بده برات بفرستم

ztx4
سه شنبه 03 اسفند 1389, 10:56 صبح
این تکه ای از برنامه ای خودمه.
اگه متوجه نشدی بگو برات یه برنامه ی کوچیک کامل بنویسم.قسمت سبزو نگاه کن.

SqlCommandBuilder commandbuilder = new SqlCommandBuilder(adaptor);
DataRow row = tbl.NewRow();
tbl.Rows.Add(row);
row = tbl.Rows[currentrow];
row.BeginEdit();

row["name"] = txtname.Text.Trim();
row["lastname"] = txtlastname.Text.Trim();
row["shomaremeli"] = txtshomaremeli.Text;
if (combosex.SelectedIndex == 0)
row["sex"] = true;
else
row["sex"] = false;
dateconvert dc = new dateconvert();
DateTime t = dc.shamsitomiladi(txttarikhtavalod.Text);

row["tarikhtavalod"] = t;
row["tell1"] = txttell1.Text.Trim();
row["tell2"] = txttell2.Text.Trim();
row["address"] = txtadress.Text.Trim();
row["tarikhesabt"] = DateTime.Now;
row["shahriye"] = txtShahrie.Text.Trim();
if (studepic.BackgroundImage != null)
{
Image im = null;
im = studepic.BackgroundImage;
MemoryStream mstream = new MemoryStream();
im.Save(mstream, im.RawFormat);
byte[] arrimage = mstream.GetBuffer();
row["image"] = arrimage;
}

else if (MessageBox.Show("عکس انتحاب نشده است.آیا مایلید کار آموز بدون عکس دخیره شود؟", "هشدار", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
return;
row.EndEdit();

adaptor.Update(dst, "stude");