PDA

View Full Version : insert در دیتابیس با استفاده از dataset



ArMin.AM
دوشنبه 06 آذر 1391, 19:01 عصر
سلام دوستان ، یه سوالی داشتم ، من دارم یه برنامه می نویسم که با دیتابیس سر و کار داره ، من یه dataGrid ساختم و dataSet و dataAdapter بهش اضافه کردم و با دیتابیس هم ارتباط برقرار کردم ، حالا مشکلم اضافه کردن اطلاعات ورودی به دیتابیسم هست ، dataset برای update ، متد update داره که هر فیلدی که آپدیت میشه رو در دی بی هم آپدیت می کنه ، اما متدی به عنوان insert نداره که اطلاعات رو بگیره و به دیتابیس اضافه کنه ، چه جوری می تونم این کار رو انجام بدم ؟

r_s1389@yahoo.com
دوشنبه 06 آذر 1391, 19:05 عصر
سلام
dataAdapter این امکان رو داره

ArMin.AM
دوشنبه 06 آذر 1391, 19:10 عصر
خیلی ممنون از پاسخ گوییتون دوست عزیز
من یه شی از dataAdopter ساختم ، و همون طور که گفتم متدی به نام update داشت که میشد ازش استفاده کرد و دیتابیس رو آپدیت کرد به صورت زیر
dsCustomers = new DataSet();
daCustomers = new SqlDataAdapter(
"select CustomerID, CompanyName from Customers", conn);
------------------
daCustomers.Update(dsCustomers, tableName);


اما مشکلی که دارم اینه که نمی تونم به جای متد update بالا از متد insert استفاده کنم ، چون قبول نمی کنه

r_s1389@yahoo.com
دوشنبه 06 آذر 1391, 19:18 عصر
خواهش میکنم دوست عزیز قابل نداره

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;

namespace library.DAL
{
class DBConnection
{
SqlConnection conect = new SqlConnection("Data Source=.;Initial Catalog=library;Integrated Security=True");
SqlDataAdapter da = new SqlDataAdapter();
DataTable dt = new DataTable();
public DataTable executeSelect(string sql)
{
conect.Open();
da.SelectCommand = new SqlCommand();
da.SelectCommand.Connection = conect;
da.SelectCommand.CommandText = sql;
da.Fill(dt);
conect.Close();

return dt;
}
public void executeInsert(string sql)
{
conect.Open();
da.InsertCommand = new SqlCommand();
da.InsertCommand.Connection = conect;
da.InsertCommand.CommandText = sql;
da.InsertCommand.ExecuteNonQuery();
conect.Close();
}
public void executedel(string sql)
{
conect.Open();
da.DeleteCommand = new SqlCommand();
da.DeleteCommand.Connection = conect;
da.DeleteCommand.CommandText = sql;
da.DeleteCommand.ExecuteNonQuery();
conect.Close();
}
public void executeupdate(string sql)
{
conect.Open();
da.UpdateCommand = new SqlCommand();
da.UpdateCommand .Connection = conect;
da.UpdateCommand.CommandText = sql;
da.UpdateCommand.ExecuteNonQuery();
conect.Close();
}
public DataTable executereport(string sql)
{
conect.Open();
da.SelectCommand = new SqlCommand();
da.SelectCommand.Connection = conect;
da.SelectCommand.CommandText = sql;
da.Fill(dt);
conect.Close();

return dt;
}
}
}

r_s1389@yahoo.com
دوشنبه 06 آذر 1391, 19:29 عصر
خیلی ممنون از پاسخ گوییتون دوست عزیز
من یه شی از dataAdopter ساختم ، و همون طور که گفتم متدی به نام update داشت که میشد ازش استفاده کرد و دیتابیس رو آپدیت کرد به صورت زیر
dsCustomers = new DataSet();
daCustomers = new SqlDataAdapter(
"select CustomerID, CompanyName from Customers", conn);
------------------
daCustomers.Update(dsCustomers, tableName);


اما مشکلی که دارم اینه که نمی تونم به جای متد update بالا از متد insert استفاده کنم ، چون قبول نمی کنه

میشه واضح بگین قبول نمیکنه یعنی چه؟؟؟؟

ArMin.AM
دوشنبه 06 آذر 1391, 19:38 عصر
میشه واضح بگین قبول نمیکنه یعنی چه؟؟؟؟

وقتی که به این صورت می نویسم :
daCustomers.insert(dsCustomers, tableName);
ارور زیر رو میده :
sqlDataAdaptor doesnt contain a definition for insert and no extension method insert accepting a first argument of type sqlDataAdaptor could be found

r_s1389@yahoo.com
دوشنبه 06 آذر 1391, 19:43 عصر
فکر کنم با کد من بتونی مشکلت رو حل کنی اگر حل نشد اون وقت کل کدت رو بذار تا دوستان و بنده ببینیم اشکال کار از کجاست
موفق باشی

mhq1368
دوشنبه 06 آذر 1391, 19:46 عصر
خواهش میکنم دوست عزیز قابل نداره

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;

namespace library.DAL
{
class DBConnection
{
SqlConnection conect = new SqlConnection("Data Source=.;Initial Catalog=library;Integrated Security=True");
SqlDataAdapter da = new SqlDataAdapter();
DataTable dt = new DataTable();
public DataTable executeSelect(string sql)
{
conect.Open();
da.SelectCommand = new SqlCommand();
da.SelectCommand.Connection = conect;
da.SelectCommand.CommandText = sql;
da.Fill(dt);
conect.Close();

return dt;
}
public void executeInsert(string sql)
{
conect.Open();
da.InsertCommand = new SqlCommand();
da.InsertCommand.Connection = conect;
da.InsertCommand.CommandText = sql;
da.InsertCommand.ExecuteNonQuery();
conect.Close();
}
public void executedel(string sql)
{
conect.Open();
da.DeleteCommand = new SqlCommand();
da.DeleteCommand.Connection = conect;
da.DeleteCommand.CommandText = sql;
da.DeleteCommand.ExecuteNonQuery();
conect.Close();
}
public void executeupdate(string sql)
{
conect.Open();
da.UpdateCommand = new SqlCommand();
da.UpdateCommand .Connection = conect;
da.UpdateCommand.CommandText = sql;
da.UpdateCommand.ExecuteNonQuery();
conect.Close();
}
public DataTable executereport(string sql)
{
conect.Open();
da.SelectCommand = new SqlCommand();
da.SelectCommand.Connection = conect;
da.SelectCommand.CommandText = sql;
da.Fill(dt);
conect.Close();

return dt;
}
}
}

سلام دوست عزیز ممنون از پست خوبتون

اگه میشه یه مثال برای استفاده از این توابع با پارامتر بزنید

ممنون

ArMin.AM
دوشنبه 06 آذر 1391, 19:49 عصر
فکر کنم با کد من بتونی مشکلت رو حل کنی اگر حل نشد اون وقت کل کدت رو بذار تا دوستان و بنده ببینیم اشکال کار از کجاست
موفق باشی

خیلی ممنون دوست عزیز
یه سوال دیگه برام پیش اومد ، من با همون دستوراتی که برای update نوشتم و با همون متد update می تونم در دیتابیسم عمل insert رو هم انجام بدم ، مشکلی به وجود نمیاره این کار ؟

r_s1389@yahoo.com
دوشنبه 06 آذر 1391, 20:09 عصر
خیلی ممنون دوست عزیز
یه سوال دیگه برام پیش اومد ، من با همون دستوراتی که برای update نوشتم و با همون متد update می تونم در دیتابیسم عمل insert رو هم انجام بدم ، مشکلی به وجود نمیاره این کار ؟

نه بابا این کار کلا اشتباهه
تو وقتی داری عمل درج را انجام میدی یک داده جدید در یا بهتره بگم بگم یک سطر به داده هات اضافه میشه
اما در عمل ویرایش این طور نیست شما دارین مقدار قبلی را ویرایش میکنین
در کل به نظر من کار شما از لحاظ اصول برنامه نویسی اشتباه است

mhq1368
دوشنبه 06 آذر 1391, 20:11 عصر
دوست عزیز میشه منم راهنمایی کنید

r_s1389@yahoo.com
دوشنبه 06 آذر 1391, 20:12 عصر
سلام دوست عزیز ممنون از پست خوبتون

اگه میشه یه مثال برای استفاده از این توابع با پارامتر بزنید

ممنون
خواهش میکنم دوست عزیز
شما این برنامه ساده رو که خودم وقتی شروع به کار کردم نوشتم رو نگاه کنید
http://uplod.ir/zmmdtjpdaws2/library.rar.htm