PDA

View Full Version : آموزش: نحوه اتصال دیتابیس اکسس به استیمول



ghasem110deh
دوشنبه 12 مرداد 1394, 00:32 صبح
سلام به همه ...
دوستان من میخوام دیتابیس اکسس رو (تو پوشه دیباگ برنامه) به استیمول متصل کنم
ولی نه OleDb و نه Microsoft Access 2010 ، هیچکدوم رو قبول نمیکنه !

khokhan
دوشنبه 12 مرداد 1394, 00:45 صبح
سلام به همه ...
دوستان من میخوام دیتابیس اکسس رو (تو پوشه دیباگ برنامه) به استیمول متصل کنم
ولی نه OleDb و نه Microsoft Access 2010 ، هیچکدوم رو قبول نمیکنه !
نیازی به اتصال نیست
سمت برنامه همه کارها رو انجام بده ...... همه اون چیزایی که لازمه ازشون گزارش تهیه بشه رو بریز داخل یه دیتاتیبل و پاس بده به گزارش و یا اینکه از طریق پارامتر ارسال کن

ghasem110deh
دوشنبه 12 مرداد 1394, 01:10 صبح
سلام ...

الان تقریبا همه رو فرستادم ، واسه فاکتور
ولی یه سری چیزا مثل اسم و تلفن و ... مربوط به برنامه (کارگاهی که از برنامه استفاده میکنه) میخوام از بانک بخونم که بالای همه فاکتور باشه ...
با وریبل فرستادم ، ولی اونجوری راحت تر بود ... الان 8 تا وریبل درست کردم : بخاطر تکست باکس ها و یه دیتاتیبل واسه گرفتن مقادیر دیتاگریدویو !

اون روش بهتر نیست (یعنی راحت تر)

و مشکل اصلیم هم اینه که الان عددهایی که با وریبل فرستام رو سه رقم جدا نمیکنه ، ولی از اون روش راحت با textFormat و تغییر به حالت number خودش انجام میداد ... الان هر کار ککردم نشد
البته فکر کنم بخاطر اینه که وریبل رو رشته ای فرستادم ولی وریبل رو int هم کردم باز نشد :متفکر:

khokhan
دوشنبه 12 مرداد 1394, 02:12 صبح
سلام ...

الان تقریبا همه رو فرستادم ، واسه فاکتور
ولی یه سری چیزا مثل اسم و تلفن و ... مربوط به برنامه (کارگاهی که از برنامه استفاده میکنه) میخوام از بانک بخونم که بالای همه فاکتور باشه ...
با وریبل فرستادم ، ولی اونجوری راحت تر بود ... الان 8 تا وریبل درست کردم : بخاطر تکست باکس ها و یه دیتاتیبل واسه گرفتن مقادیر دیتاگریدویو !

اون روش بهتر نیست (یعنی راحت تر)

و مشکل اصلیم هم اینه که الان عددهایی که با وریبل فرستام رو سه رقم جدا نمیکنه ، ولی از اون روش راحت با textFormat و تغییر به حالت number خودش انجام میداد ... الان هر کار ککردم نشد
البته فکر کنم بخاطر اینه که وریبل رو رشته ای فرستادم ولی وریبل رو int هم کردم باز نشد :متفکر:


مقادیر تکست باکسها رو هم توی همون دیتاتیبلی که از دیتا گرید درست کردی ، وارد کن و همه رو یکجا بفرست

ghasem110deh
دوشنبه 12 مرداد 1394, 03:03 صبح
مقادیر تکست باکسها رو هم توی همون دیتاتیبلی که از دیتا گرید درست کردی ، وارد کن و همه رو یکجا بفرست

چطوری همه تکست باکس ها رو بریزم تو دیتاتیبل ؟

khokhan
دوشنبه 12 مرداد 1394, 03:34 صبح
چطوری همه تکست باکس ها رو بریزم تو دیتاتیبل ؟


DataTable dt2 = new DataTable();
DataColumn newCol = new DataColumn("Numbera", typeof(int));
DataColumn newCol2 = new DataColumn("datei", typeof(string));
DataColumn newCol3 = new DataColumn("tot", typeof(Int32));
newCol.AllowDBNull = true;
dt2.Columns.AddRange(new DataColumn[] { newCol, newCol2, newCol3 });
DataRow dr = dt2.NewRow();
dr[0] = textBox1.Text;
dr[1] = textBox2.Text;
dr[2] = textBox3.Text;
//dr[3] = "coldata4";

dt2.Rows.Add(dr);

ghasem110deh
دوشنبه 12 مرداد 1394, 17:54 عصر
عکی رو تو دیتابیس بصورت باینری ذخیره کردم ...
چطور باید بفرستم به استیمول (توی گریدویو عکس رو ندارم)

واسه تبدیل عدد به حروغ هم اینو میزنم ولی خطا میده :
{ToWordsFa((StiText.Text38).ToString())} ريال

ghasem110deh
سه شنبه 13 مرداد 1394, 03:30 صبح
من با این کد عکس رو از دیتابیس خوندم :



Image Logo = null;
public Image Logo_Select()
{
try
{
Connection_String.Connect();
OleDbCommand Com = new OleDbCommand("Select Logo From Tbl_Company Where Id="+1, Connection_String.Con);
OleDbDataReader Dr = Com.ExecuteReader(CommandBehavior.SequentialAccess );
Dr.Read();
byte[] imagebyte = (byte[])Dr.GetValue(0);
MemoryStream Mems = new MemoryStream();
Mems.Write(imagebyte, 0, imagebyte.Length);
Logo = Image.FromStream(Mems);
Connection_String.Disconnect();
}
catch
{
Connection_String.Disconnect();
}
return Logo;
}


با اینم که میریزم توی جعبه عکس :


pictureBox1.Image = new Company_Dal().Logo_Select();


ولی هیچی نشون نمیده !!؟

ghasem110deh
سه شنبه 13 مرداد 1394, 11:22 صبح
دوستان تو این خط خطا میده :
Logo = Image.FromStream(Mems);


Parameter is not valid

khokhan
سه شنبه 13 مرداد 1394, 17:33 عصر
دوستان تو این خط خطا میده :
Logo = Image.FromStream(Mems);
اینو براتون نوشتم شاید کارتون باهاش راه بیافته
لینک (http://s6.picofile.com/file/8204241884/AccessImage.rar.html)

khokhan
پنج شنبه 15 مرداد 1394, 21:21 عصر
دوستان تو این خط خطا میده :
Logo = Image.FromStream(Mems);


ابتدا یه متد برای تغییر نوع byte به image ابتدای فرم قرار بده

اینطوری :


public byte[] imageToByteArray(System.Drawing.Image imageIn)
{
MemoryStream ms = new MemoryStream();
imageIn.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
return ms.ToArray();
}

بعد نوع ستون داخل دیتاتیبل رو به نوع byte تغییر بده
اینطوری :


DataColumn Img = new DataColumn("Logo", typeof(byte[]));


حالا می تونی تصویر رو از محل پوشه root بخونی و به صورت بایت توی دیتاتیبل بریزی و به گزارش ارسال کنی :

اینطوری :


Image img = Image.FromFile(Application.StartupPath + @"\Koala.jpg");
Dr["Logo"] = imageToByteArray(img);

این هم گزارش پروژه شما با تصویر (لوگو )

133985