PDA

View Full Version : سوال: دیتابیس اکسس در سی شارپ سورس



Amir Hos
چهارشنبه 06 خرداد 1394, 14:14 عصر
سلام به همه دوستان من تازه عضو این سایت شدم و این اولین پست منه قبل از این هر چی مشکل تو برنامه نویسی داشتم تو گوگل سرچ میکردم و گوگل لینک این سایت رو میاورد این طوری شد که با این سایت خوب آشنا شدم حالا هم سوالی دارم ممنون میشم جوابم رو بدید:لبخندساده:
من دیتابیسی در اکسس ساختم بعدش وصلش کردم به سی شارپ یا بهتره بگم پروژه سی شارپ بعدش دکمه ثبت گذاشتم که کاربردش از اسمش معلومه با چند تا تکست باکس که برای ورودیه حالا میخوام دکمه حذف بذارم به علاوه دکمه گزارش گیری اینم کدمه

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;
namespace WindowsFormsApplication14
{
public partial class Form1 : Form
{
DataSet Libraryds = new DataSet();
OleDbDataAdapter Libraryda = new OleDbDataAdapter();
OleDbConnection Libraryc = new OleDbConnection();
public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
// TODO: This line of code loads data into the 'libraryDataSet2.Personel' table. You can move, or remove it, as needed.
this.personelTableAdapter1.Fill(this.libraryDataSe t2.Personel);
// TODO: This line of code loads data into the 'libraryDataSet1.Library' table. You can move, or remove it, as needed.
this.libraryTableAdapter.Fill(this.libraryDataSet1 .Library);
// TODO: This line of code loads data into the 'libraryDataSet.Personel' table. You can move, or remove it, as needed.
this.personelTableAdapter.Fill(this.libraryDataSet .Personel);

}

private void button1_Click(object sender, EventArgs e)
{
Libraryc.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;" + @"Data Source=C:\Documents and Settings\AAA\Desktop\WindowsFormsApplication14\Win dowsFormsApplication14\Library.accdb";
Libraryda.InsertCommand = new OleDbCommand();
Libraryda.InsertCommand.CommandText =
"INSERT INTO Personel (ID_Personel,Name,Family,tel,Semat,id_Library)" + "VALUES('"+textBox1.Text+"','"+textBox2.Text+"','"+textBox3.Text+"','"+textBox4.Text+"','"+textBox5.Text+"','"+comboBox1.Text+"')";
Libraryda.InsertCommand.Connection = Libraryc;
Libraryc.Open();
Libraryda.InsertCommand.ExecuteNonQuery();
Libraryc.Close();
}
}
}


این فقط دکمه ثبته که بدون مشکل کارم میکنه فقط بعد ثبت نرم افزار رو بسته و دوباره اجرا میکنیم وگرنه میگه Dublicate که مهم نیست برام فقط حذف و گزارش گیری رو میخوام در ضمن من مدل دیگه ی ثبت حذف رو دیدیم ولی میخوام تو این سبک کد باشه نه سبک های دیگه مثل Parameters.AddWithValue("@p2", textBox2.Text); ممون میشم راهنماییم کنید
از این که در جمعتون وارد شدم خیلی خوشحالم :قلب::بوس:

ebrahim.rayatparvar
چهارشنبه 06 خرداد 1394, 14:38 عصر
سلام مهندس جان
شما که با سرچ میگین آشنا هستین حالا همین سرچ کردن رو تو همین سایت بزنین مثل ADO که فکر کنم جواب تمام سوال های شما رو برای شما لیست کنه

god of war
چهارشنبه 06 خرداد 1394, 16:24 عصر
برای انحام عملیات های ثبت حذف و بروزرسانی نحوه دسترسی و اجرای کد در بانک یکیه فقط query و دستورت متفاوته
مثلا دستور حذف :


string query = " delete nameJadval where sharteHazfe "


برای گزارش گیری هم باید انواع select رو یاد بگیری

Amir Hos
چهارشنبه 06 خرداد 1394, 18:23 عصر
سلام مهندس جان
شما که با سرچ میگین آشنا هستین حالا همین سرچ کردن رو تو همین سایت بزنین مثل ADO که فکر کنم جواب تمام سوال های شما رو برای شما لیست کنه

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

ebrahim.rayatparvar
چهارشنبه 06 خرداد 1394, 18:46 عصر
فکر کنم این لینک جواب سوالای شما رو بده :
http://barnamenevis.org/showthread.php?33368-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-ADO-NET-%D8%AF%D8%B1-%D8%B3%DB%8C-%D8%B4%D8%A7%D8%B1%D9%BE

Amir Hos
چهارشنبه 06 خرداد 1394, 18:51 عصر
برای انحام عملیات های ثبت حذف و بروزرسانی نحوه دسترسی و اجرای کد در بانک یکیه فقط query و دستورت متفاوته
مثلا دستور حذف :


string query = " delete nameJadval where sharteHazfe "


برای گزارش گیری هم باید انواع select رو یاد بگیری

میشم یکم بیشتر توضیح بدید آخه اینو کجا بزنم فقط یه دستور نیست آخه

Amir Hos
چهارشنبه 06 خرداد 1394, 18:53 عصر
فکر کنم این لینک جواب سوالای شما رو بده :
http://barnamenevis.org/showthread.php?33368-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-ADO-NET-%D8%AF%D8%B1-%D8%B3%DB%8C-%D8%B4%D8%A7%D8%B1%D9%BE

این برای SQL هست من اکسسم

ebrahim.rayatparvar
چهارشنبه 06 خرداد 1394, 19:00 عصر
شما میخواین تو داخل Commandtext کد بزنید برای delete,insert,update,select که میتونی نو Command ها رو تو این پست ببینی بقیه کارا فرقی نداره همینه

Amir Hos
چهارشنبه 06 خرداد 1394, 19:03 عصر
شما میخواین تو داخل Commandtext کد بزنید برای delete,insert,update,select که میتونی نو Command ها رو تو این پست ببینی بقیه کارا فرقی نداره همینه
شما میتونید همین کد من رو با یکم تغییر همینجا بفرستید البته اگه میشه
فقط حذف

ebrahim.rayatparvar
چهارشنبه 06 خرداد 1394, 19:17 عصر
این کدی بود که دوست عزیز ما لطف کردن نوشتن :


" delete nameJadval where sharteHazfe "

همین کد رو بزار به جای همین کد insert که بالا نوشتی حالا اسم جدول نمیدونم چی گذاشتی ولی برای شرط برای مثال متونی بنویسی


" delete Personel where ID_Personel='"+TextBox1.Text+"';"

Amir Hos
چهارشنبه 06 خرداد 1394, 22:31 عصر
این کدی بود که دوست عزیز ما لطف کردن نوشتن :


" delete nameJadval where sharteHazfe "

همین کد رو بزار به جای همین کد insert که بالا نوشتی حالا اسم جدول نمیدونم چی گذاشتی ولی برای شرط برای مثال متونی بنویسی


" delete Personel where ID_Personel='"+TextBox1.Text+"';"



Libraryda.DeleteCommand.CommandText =
" delete from Personel where ID_Personel='"+textBox1.Text+"'";
ارور میده
Data type mismatch in criteria expression.
اینم کاملش

private void button1_Click(object sender, EventArgs e)
{
Libraryc.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;" + @"Data Source=c:\documents and settings\aaa\my documents\visual studio 2010\Projects\WindowsFormsApplication2\WindowsForm sApplication2\Library.accdb";
Libraryda.DeleteCommand = new OleDbCommand();
Libraryda.DeleteCommand.CommandText =
" DELETE FROM Personel WHERE ID_Personel='" + textBox1.Text + "'";
Libraryda.DeleteCommand.Connection = Libraryc;
Libraryc.Open();
Libraryda.DeleteCommand.ExecuteNonQuery();
Libraryc.Close();
}

god of war
پنج شنبه 07 خرداد 1394, 10:31 صبح
دوست عزیز به یک نکته دقت کن
دستورات sql یک زبان مرجع هستش . یعنی این نیست که فقط داخل sqlserver کار کنه همون دستورات داخل access هم کار میکنه .

god of war
پنج شنبه 07 خرداد 1394, 10:46 صبح
شما داری ID رو چک میکنی
اگه ID در دیتابیس به صورت int ذخیره شده باشه داخل کد بالا هم باید textBox1.Text تبدیل به int کنی

Amir Hos
پنج شنبه 07 خرداد 1394, 15:36 عصر
شما داری ID رو چک میکنی
اگه ID در دیتابیس به صورت int ذخیره شده باشه داخل کد بالا هم باید textBox1.Text تبدیل به int کنی



private void button1_Click(object sender, EventArgs e)
{
int a;
a = Convert.ToInt16(textBox1.Text);
Libraryc.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;" + @"Data Source=c:\documents and settings\aaa\my documents\visual studio 2010\Projects\WindowsFormsApplication2\WindowsForm sApplication2\Library.accdb";
Libraryda.DeleteCommand = new OleDbCommand();
Libraryda.DeleteCommand.CommandText =
Libraryda.DeleteCommand.CommandText =
" delete from Personel where ID_Personel='" + a + "'";
Libraryda.DeleteCommand.Connection = Libraryc;
Libraryc.Open();
Libraryda.DeleteCommand.ExecuteNonQuery();
Libraryc.Close();
}
نشد :گریه::گریه::گریه:

Amir Hos
پنج شنبه 07 خرداد 1394, 15:47 عصر
اصلا یه سوال چرا وقتی من میگم تو دستور query که '" + textBox1.Text + "' حذف کن رو چه حسابی تمام سلول های اون ردیف رو حذف میکنه؟ من فقط گفتم textBox1 که البته در دیتابیسم کلید اصلیه

god of war
پنج شنبه 07 خرداد 1394, 16:37 عصر
شما a رو بین دو ' ' گذاشتی که اینجوری تبدیل به رشته میشه
اینجوری بزن
" delete from Personel where ID_Personel=" + a.Tostring() +";
تمام اعمال sql بر پایه ی رکورد هستش نمیشه که فقز یک فیلد خالی بشه ک
درواقع طرح اصلی بامک اطلاعاتی در sql از قانون مجموعه ها پیروی میکنه
جدولهای مسطح
نمیدونم متوجه شدی یا ن

Amir Hos
پنج شنبه 07 خرداد 1394, 17:14 عصر
شما a رو بین دو ' ' گذاشتی که اینجوری تبدیل به رشته میشه
اینجوری بزن
" delete from Personel where ID_Personel=" + a.Tostring() +";
تمام اعمال sql بر پایه ی رکورد هستش نمیشه که فقز یک فیلد خالی بشه ک
درواقع طرح اصلی بامک اطلاعاتی در sql از قانون مجموعه ها پیروی میکنه
جدولهای مسطح
نمیدونم متوجه شدی یا ن

آقای god of war نمیدونم چجوری ازت تشکر کنم مشکلم حل شد فقط یه سوال چطور موقع insert این کار لازم نبود منظورم convert هستش در ضمن متوجه منظورتون شدم
:قلب::بوس:تقدیم به شما

Amir Hos
سه شنبه 12 خرداد 1394, 05:35 صبح
اینم کد کامل دکمه حذف

private void button1_Click(object sender, EventArgs e)
{
int a;
a = Convert.ToInt16(textBox1.Text);
Libraryc.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;" + @"Data Source=c:\documents and settings\aaa\my documents\visual studio 2010\Projects\WindowsFormsApplication2\WindowsForm sApplication2\Library.accdb";
Libraryda.DeleteCommand = new OleDbCommand();
Libraryda.DeleteCommand.CommandText =
Libraryda.DeleteCommand.CommandText =
" delete from Personel where ID_Personel= " + a.ToString() + "";
Libraryda.DeleteCommand.Connection = Libraryc;
Libraryc.Open();
Libraryda.DeleteCommand.ExecuteNonQuery();
Libraryc.Close();
}
بازم ممنون دوستان