IMANAZADI
پنج شنبه 09 دی 1389, 14:39 عصر
با سلام خدمت دوستان عزیز
یک مشکلی برام پیش اومده خیلییم حیاتیه
لطفا راهنمایی کنید
من یه برنامه نوشتم که با بانک اطلاعاتی اکسس کار میکنه
این برنامه شامل 3 تا فرم هست
فرم اولیه برنامه که آدرس فایل دیتابیس را میگیره .
فرم دوم اطلاعات لازم برای کار با دیتابیس را از کاربر میگیره
فرم سوم که شامل یک دیتاگرید ویو هست که اطلاعاتی را که کاربر در فرم دوم وارد کرده را نشون میده .
سوال :
در فرم اول چطوری میتونم آدرس فایل را که کاربر مشخص کرده به فرم سوم بفرستم ؟
من اینطوری عمل کردم که در فرم اول یک متغیر بصورت زیر تعریف کردم
public static string address;
بعد در کلید open که در عکس ملاحظه می فرمائید کد زیر را نوشتم
openFileDialog1.Filter = "Microsoft Access (*.accdb)|*.accdb";
if (openFileDialog1.ShowDialog () == DialogResult.OK)
{
address = openFileDialog1.FileName;
}
کلید Report به صورت زیر نوشته شده است.
Form2 frm2 = new Form2 ();
frm2.ShowDialog ();
در فرم سوم آدرس را اینطوری فراخوانی کردم
OleDbConnection cnn = new OleDbConnection (@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Form1.address + "");
آیا از نظر برنامه نویسی اینگونه عمل کردن ایرادی نداره یعنی خلاف قواعد صحیح برنامه نویسی نیست ؟ اگر راه دیگری هست راهنمایی کنید ؟
سوال دوم هم مثل سوال اول هست
در فرم دوم که در عکس هم مشخص هست کاربر تاریخ را مشخص میکند و بعد روی show کلیک میکنه
کلید show بصورت زیر نوشته شده
Form3 frm3 = new Form3();
frm3 .rep_date = dateTimePicker1.Value.ToShortDateString ();
frm3 .ShowDialog ();
در فرم سوم متغیر rep_date به صورت properties اینگونه تعریف شده
public string rep_date;
public string REP_DATE
{
get
{
return rep_date;
}
set
{
rep_date = value;
}
}
آیا این properties درست تعریف شده است ؟؟؟
در فرم لود فرم 3 کد زیر نوشته شده
OleDbConnection cnn = new OleDbConnection (@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Form1.address + "");
OleDbDataAdapter da = new OleDbDataAdapter ("" , cnn);
DataSet ds1 = new DataSet ();
ds1.Clear ();
da.SelectCommand.CommandText = SELECT UNIT, MATERIAL, [t Date] FROM [main table] GROUP BY UNIT, MATERIAL, [t Date] HAVING([t Date] = # " + rep_date + " #)";
da.Fill (ds1 , "f");
dataGridView1.DataSource = ds1;
dataGridView1.DataMember = "f";
یک مشکلی برام پیش اومده خیلییم حیاتیه
لطفا راهنمایی کنید
من یه برنامه نوشتم که با بانک اطلاعاتی اکسس کار میکنه
این برنامه شامل 3 تا فرم هست
فرم اولیه برنامه که آدرس فایل دیتابیس را میگیره .
فرم دوم اطلاعات لازم برای کار با دیتابیس را از کاربر میگیره
فرم سوم که شامل یک دیتاگرید ویو هست که اطلاعاتی را که کاربر در فرم دوم وارد کرده را نشون میده .
سوال :
در فرم اول چطوری میتونم آدرس فایل را که کاربر مشخص کرده به فرم سوم بفرستم ؟
من اینطوری عمل کردم که در فرم اول یک متغیر بصورت زیر تعریف کردم
public static string address;
بعد در کلید open که در عکس ملاحظه می فرمائید کد زیر را نوشتم
openFileDialog1.Filter = "Microsoft Access (*.accdb)|*.accdb";
if (openFileDialog1.ShowDialog () == DialogResult.OK)
{
address = openFileDialog1.FileName;
}
کلید Report به صورت زیر نوشته شده است.
Form2 frm2 = new Form2 ();
frm2.ShowDialog ();
در فرم سوم آدرس را اینطوری فراخوانی کردم
OleDbConnection cnn = new OleDbConnection (@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Form1.address + "");
آیا از نظر برنامه نویسی اینگونه عمل کردن ایرادی نداره یعنی خلاف قواعد صحیح برنامه نویسی نیست ؟ اگر راه دیگری هست راهنمایی کنید ؟
سوال دوم هم مثل سوال اول هست
در فرم دوم که در عکس هم مشخص هست کاربر تاریخ را مشخص میکند و بعد روی show کلیک میکنه
کلید show بصورت زیر نوشته شده
Form3 frm3 = new Form3();
frm3 .rep_date = dateTimePicker1.Value.ToShortDateString ();
frm3 .ShowDialog ();
در فرم سوم متغیر rep_date به صورت properties اینگونه تعریف شده
public string rep_date;
public string REP_DATE
{
get
{
return rep_date;
}
set
{
rep_date = value;
}
}
آیا این properties درست تعریف شده است ؟؟؟
در فرم لود فرم 3 کد زیر نوشته شده
OleDbConnection cnn = new OleDbConnection (@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Form1.address + "");
OleDbDataAdapter da = new OleDbDataAdapter ("" , cnn);
DataSet ds1 = new DataSet ();
ds1.Clear ();
da.SelectCommand.CommandText = SELECT UNIT, MATERIAL, [t Date] FROM [main table] GROUP BY UNIT, MATERIAL, [t Date] HAVING([t Date] = # " + rep_date + " #)";
da.Fill (ds1 , "f");
dataGridView1.DataSource = ds1;
dataGridView1.DataMember = "f";