PDA

View Full Version : سوال: چگونگی حذف و درج در دیتابیس های Access



Salar Ashgi
چهارشنبه 23 اردیبهشت 1388, 16:03 عصر
سلام ، با راهنمایی های دوستان تونستیم عمل خواندن اطلاعات رو از یک بانک اطلاعاتی

که با Access ایجاد شده است ، انجام بدیم !!!

حال اگه بخوایم اطلاعاتی رو به این DB اضافه یا از آن حذف کنیم ، چه دستوراتی باید بکار برد ؟؟

مثال : یک DB بنام university.mdb دارای جدولی بنام student که دارای 3 فیلد :

Name , StdNum , Major میباشد !!!

فرض کنیم برای درج یا حذف اطلاعات مقدار این 3 فیلد از 3 تا Text Box گرفته میشوند !!!

ممنون از راهنمایی شما !!!

hsmfaridmehr
چهارشنبه 23 اردیبهشت 1388, 16:41 عصر
اضافه کردن


connection.Open();
command.Connection = connection;
command.CommandText = "INSERT INTO Customer (CustomerID, FirstName, LastName, " +
"Address, PhoneNumber1, phoneNumber2, CustomerDetail, CustomerSince) VALUES (" + _customerID + ", '" +
_firstName + "', '" + _lastName + "', '" + _address + "', '" + _phoneNumber1 + "', '" +
_phoneNumber2 + "', '" + _customerDetail + "', '" + _customerSince + "')";
command.ExecuteNonQuery();


حذف کردن


connection.Open();
command.Connection = connection;
command.CommandText = "DELETE * FROM Customer WHERE CustomerID =" +
_customerID;
command.ExecuteNonQuery();

SMRAH1
چهارشنبه 23 اردیبهشت 1388, 17:12 عصر
البته اگر از DATASET استفاده کنید ؛این زحمت رو خودش براتون می کشه و فقط باید یک دستور SELECT مناسب بهش بدید.نمونه های زیادی در این رابطه در سایت هست (SqlCommandBuilder رو جستجو کنید).

Salar Ashgi
پنج شنبه 24 اردیبهشت 1388, 15:38 عصر
اضافه کردن


connection.Open();
command.Connection = connection;
command.CommandText = "INSERT INTO Customer (CustomerID, FirstName, LastName, " +
"Address, PhoneNumber1, phoneNumber2, CustomerDetail, CustomerSince) VALUES (" + _customerID + ", '" +
_firstName + "', '" + _lastName + "', '" + _address + "', '" + _phoneNumber1 + "', '" +
_phoneNumber2 + "', '" + _customerDetail + "', '" + _customerSince + "')";
command.ExecuteNonQuery();
حذف کردن


connection.Open();
command.Connection = connection;
command.CommandText = "DELETE * FROM Customer WHERE CustomerID =" +
_customerID;
command.ExecuteNonQuery();


متشکر از راهنمایی شما ، کد حذف Error میده :

Data type mismatch in criteria expression. مربوط به قسمت


c1.ExecuteNonQuery();

اگه راهنمایی کنید ممنون میشم !!!

Salar Ashgi
پنج شنبه 24 اردیبهشت 1388, 15:40 عصر
البته اگر از DATASET استفاده کنید ؛این زحمت رو خودش براتون می کشه و فقط باید یک دستور SELECT مناسب بهش بدید.نمونه های زیادی در این رابطه در سایت هست (SqlCommandBuilder رو جستجو کنید).

میشه یه زحمتی بکشید ، نمونه کدی رو ارائه بفرمائید !!!

ممنون از لطف شما !!!

Salar Ashgi
پنج شنبه 24 اردیبهشت 1388, 21:03 عصر
دوستان منتظر راهنمایی سریع شما عزیزان هستم !!! فقط قسمت حذف مشکل داره !!!

hsmfaridmehr
پنج شنبه 24 اردیبهشت 1388, 21:30 عصر
Data type mismatch in criteria expression


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

Salar Ashgi
پنج شنبه 24 اردیبهشت 1388, 22:14 عصر
کد مربوط به قسمت حذف :



string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\university.mdb";
OleDbConnection con1 = new OleDbConnection(connectionString);
con1.Open();
//============================
OleDbCommand c1 = new OleDbCommand();
c1.CommandText = "DELETE * FROM student WHERE StdNum =" + textBox4.Text;
c1.Connection = con1;
c1.ExecuteNonQuery();
con1.Close();
//============================

hsmfaridmehr
پنج شنبه 24 اردیبهشت 1388, 22:28 عصر
خوب شما stdnum که احتمالا از نوع int هست رو به text مقدار دهی میکنی که type dismatch
میده باید اون رو Parse کنید

Salar Ashgi
پنج شنبه 24 اردیبهشت 1388, 22:46 عصر
StdNum یه شماره است ، ولی من در مورد insert فیلد ها ، مقدارشو از یه TextBox می گرفتم و مشکلی

نداشت ، حالا اینجا نمی دونم مشکل چیه ؟

hsmfaridmehr
پنج شنبه 24 اردیبهشت 1388, 22:55 عصر
کد مربوط به قسمت حذف :



string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\university.mdb";
OleDbConnection con1 = new OleDbConnection(connectionString);
con1.Open();
//============================
OleDbCommand c1 = new OleDbCommand();
c1.CommandText = "DELETE * FROM student WHERE StdNum =" + textBox4.Text;
c1.Connection = con1;
c1.ExecuteNonQuery();
con1.Close();
//============================


این قسمت کد رو تغییر بده


c1.CommandText = "DELETE * FROM student WHERE StdNum =" + textBox4.Text;


و اینجوری بنویس



c1.CommandText = "DELETE * FROM student WHERE StdNum =" + int.Parse(textBox4.Text)

Salar Ashgi
پنج شنبه 24 اردیبهشت 1388, 23:40 عصر
باز Error میده ، عکس شو گذاشتم :

Salar Ashgi
جمعه 25 اردیبهشت 1388, 22:53 عصر
سلام دوستان عزیز ، آخرش پیدا کردم !!!

مشکل از کوتیشن بود !!!

ممنون از راهنمایی همه دوستان !!!