PDA

View Full Version : مبتدی: Updateو Delete



81579001
جمعه 06 آذر 1388, 04:57 صبح
سلام
در مورد دستورات Updateو Delete برای SQL 2008 از کد های


sda.Update(ds.Ttest2);

استفاده کردم ولی جدول را نمی شناسد
کدهای کانکت و Insert


SqlConnection sc = new SqlConnection("data source = (Local);"+
"Initial catalog= Test2 ;integrated security=true");
private void btnReg_Click(object sender, EventArgs e)
{
SqlCommand cmd = new SqlCommand("UpPro", sc);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@Asm", tbxAsm.Text);
cmd.Parameters.AddWithValue("@Tel", tbxTel.Text);
sc.Open();
cmd.ExecuteNonQuery();
sc.Close();

باتشکر فراوان از اساتید گرامی

ali_md110
جمعه 06 آذر 1388, 07:59 صبح
شاید ProTest2 شما توی بانک غلط نوشتاری داشته باشه

81579001
جمعه 06 آذر 1388, 20:25 عصر
سلام
لطفاً راهنمای بفرمایید
چکار کنم؟

81579001
جمعه 06 آذر 1388, 22:46 عصر
سلام
عزیزان این کد


Alter PROCEDURE UpPro
@Asm nvarchar (50),
@Tel int,
@ID int
As Update Ttest2 set Asm=@Asm ,Tel =@Tel
where ID =@ID

هر کجا اشکال دارد راهنمای بفرمایید
تشکر

saeeedft
جمعه 06 آذر 1388, 22:55 عصر
دوست عزیز پس پارامتری که برای id تعریف کردی مقدارش کو؟ مقدار اونو براش ندادی، برا پارامتر id هم مقدار بفرست

81579001
شنبه 07 آذر 1388, 09:30 صبح
سلام استاد عزیز باز هم مزاحم شما شدم ببخشید مبتدی هست
وبه امید خدا شروع کردم
اما در مورد


دوست عزیز پس پارامتری که برای id تعریف کردی مقدارش کو؟ مقدار اونو براش ندادی، برا پارامتر id هم مقدار بفرست

اگر در در قسمت Insert دیتابیس منظورتان است که Identity آن Yes است
وکلاً مراحل ثبت ونمایش انجام می شود فقط وقتی مقداری را در دیتا گرید تغییر می دهیم
و کلید ذخیره را می زنیم خطا در عکس بالا را نمایش می دهد
بازهم متشکرم

sky_in_iran
شنبه 07 آذر 1388, 10:39 صبح
دوست عزيز همونجور كه آقاي استاد saeeedft گفتند شما تو ويرايشتونم داري تو WHERE از id استفاده ميكني در حالي كه هنگام صدا كردن id ارسال نميكني . بعدشم چك كن ببين اسم جدولت درسته . اگر مشكلت حل نشد كدتو بزار تا بهتر بتونيم كمكت كنيم

81579001
شنبه 07 آذر 1388, 14:01 عصر
سلام
این هم کد ها


private void btnSave_Click(object sender, EventArgs e)
{
string pa = @"data source = (Local);" +
"Initial catalog= Test2 ;integrated security=true";
SqlConnection sc = new SqlConnection(pa);
DataSet ds = new DataSet();
SqlDataAdapter sda = new SqlDataAdapter();
SqlCommand cmd = new SqlCommand("UpPro", sc);
string commandtext = "Select * from Ttest2 ";
sda.SelectCommand = new SqlCommand();
sda.SelectCommand.Connection = sc;
sda.SelectCommand.CommandText = commandtext;
cmd.CommandType = CommandType.StoredProcedure;
sc.Open();
sda.Update (ds, " Ttest2 ");
sc.Close();
dataGridView1.DataSource = ds;
dataGridView1.DataMember = " Ttest2 ";
}

81579001
شنبه 07 آذر 1388, 22:59 عصر
سلام
ظاهراً نمایشگاه مجالی برای سایت نگذاشته!!!؟؟؟

81579001
یک شنبه 08 آذر 1388, 13:09 عصر
سلام
لطفاً راهنمای بفرمایید

sky_in_iran
یک شنبه 08 آذر 1388, 14:34 عصر
دوست عزيز چرا كدتو انقدر پيچيده كردي هم CommandText دادي و هم از StoredProcedure استفاده كردي اين روش اشتباست اگه يه كد ساده ميخواي مثل زير عمل كن :




string pa = @"data source = (Local);" +
"Initial catalog= Test2 ;integrated security=true";

SqlDataAdapter sda = new SqlDataAdapter("Select * from Ttest2 ",pa);
DataSet ds = new DataSet();
sda.fill(ds);
dataGridView1.DataSource = ds.table[0];




يا اينكه بنويس :




string pa = @"data source = (Local);" +
"Initial catalog= Test2 ;integrated security=true";
sqlconnection sc=new sqlconnection(pa);
SqlCommand cmd = new SqlCommand();
cmd.Connection = sc;
cmd.CommandText="UpPro"
cmd.CommandType = CommandType.StoredProcedure;
sc.open();
sqldatareader dr=cmd.executreader();
DataSet ds = new DataSet();
dr.load(ds);
dataGridView1.DataSource = ds.table[0];


اين نكته رو بگم الان من به vs دسترسي ندارم شايد تو املا دستورات غلط نوشتاري داشته باشم بابت اين موضوع معذرت به بزرگي خودتون ببخشيد اما كدش اينه اين و بزار اگه جواب نداد بازم بگو تا يه مثال برات بزارم موفق باشي

81579001
یک شنبه 08 آذر 1388, 17:43 عصر
سلام
کدهای شما اجرا نشد ولی فعلاً هدفم Updateو Delete
باتشکر در فرصت مناسب روی کد های شما کار می کنم
تشکر

81579001
دوشنبه 09 آذر 1388, 09:40 صبح
سلام
کدهای شما اجرا نشد ولی فعلاً هدفم Updateو Delete
باتشکر در فرصت مناسب روی کد های شما کار می کنم
تشکر

sky_in_iran
دوشنبه 09 آذر 1388, 14:11 عصر
سلام
کدهای شما اجرا نشد ولی فعلاً هدفم Updateو Delete
باتشکر در فرصت مناسب روی کد های شما کار می کنم
تشکر

كدها چرا اجرا نشد ؟ پيغام خطا داد اگه پيغام داد بذار تا رفع عيب كنيم
منظور از Updateو Delete چيه ؟ شما كدش تو sql ميخواي تو كدبرنامه ميخواي تو گريد ميخواي كجا ميخواي ميشه بيشتر توضيح بديد

81579001
دوشنبه 09 آذر 1388, 19:16 عصر
سلام
با تشکر
کد برنامه در sql دارم البته اگر درست باشد

ALTER PROCEDURE [dbo].[UpPro]
@Asm nvarchar (50),
@Tel int,
@ID int
As Update Ttest2 set Asm=@Asm ,Tel =@Tel
where ID =@ID
در مورد کد برنامه C#‎‎

private void btnSave_Click(object sender, EventArgs e)
{
string pa = @"data source = (Local);" +
"Initial catalog= Test2 ;integrated security=true";
SqlConnection sc = new SqlConnection(pa);
DataSet ds = new DataSet();
SqlDataAdapter sda = new SqlDataAdapter();
SqlCommand cmd = new SqlCommand("UpPro", sc);
string commandtext = "Select * from Ttest2 ";
sda.SelectCommand = new SqlCommand();
sda.SelectCommand.Connection = sc;
sda.SelectCommand.CommandText = commandtext;
cmd.CommandType = CommandType.StoredProcedure;
sc.Open();
sda.Update(ds, " Ttest2 " );
sc.Close();
dataGridView1.DataSource = ds;
dataGridView1.DataMember = " Ttest2 " ;
}
اما درمورد دیتا گرید دیگر نمی دانم باید چکار کنم
وعکس Error را هم گذاشتم
ولی این که چه می خواهم آن است که وقتی کاربر فرم تغییرات را باز کرد در دیتا گرید هر ردیفی را انتخاب کرد ودر آن تغییراتی داد با زدن دکمه ذخیره (btnSave) تمام تغییرات در دیتابیس ذخیره شود

متشکر از راهنمای شما

sky_in_iran
سه شنبه 10 آذر 1388, 07:53 صبح
دوست عزيز خدمتتون گفته بودم كه شما آمدي در كدت هم
string commandtext = "Select * from Ttest2 "; گذاشتي و هم
cmd.CommandType = CommandType.StoredProcedure; شما اگه به CommandText داري مقدار ميدي يعني يك select ميدي بايد commandtype مقدار text بدي نه StoredProcedure . بعد براي ثبت اطلاعات چرا از SqlDataAdapter دليل خاصي داريد ؟
كدي براتون فرستادم خيلي راحتر كار شمارو انجام ميده بعد يه لطفي كن برنامتو و بانكتو بزار تا كدشو من يا اساتيد ديگه اصلاح كنن خدمتتون بدن . به نظرم عملكرد شما در كد ميتواند بهتر و بهينه تر باشد و اين نكته رو هم بگم براي نوشتن يك برنامه اولين راه بهترين و تنها ترين راه نيست (به تعداد آدم روي زمين راه است براي رسيدن به خدا):لبخندساده:

81579001
سه شنبه 10 آذر 1388, 10:29 صبح
سلام
با تشکر از راهنمای خوب شما
این هم برنامه
دیتابیس: حجمش زیاده نمی دانم چکار کنم
ولی مشخصات می گذارم
دیتابیس Test2
جدول Ttest2
ID int
Asm nvarchar (50)
Tel int
و PROCEDURE

Alter PROCEDURE UpPro
@Asm nvarchar (50),
@Tel int,
@ID int
As Update Ttest2 set Asm=@Asm ,Tel =@Tel
where ID =@ID
خیلی خیلی متشکرم از اساتید خوبم

81579001
چهارشنبه 11 آذر 1388, 23:33 عصر
سلام
بر همه اساتید گرامی
منتظرم...

mha764
پنج شنبه 12 آذر 1388, 01:07 صبح
بیا اینجا شاید بدردت بخوره
www.programminglar.blogfa.com

sky_in_iran
پنج شنبه 12 آذر 1388, 11:39 صبح
دوست عزيز كد شمارو ديدم يه سوال شما داري تغييرات و تو گريد ميدي بعدشم داري از بانك select ميگيري اينا رو هم باهم و توهم نوشتي اولا اينجوري كدت نا خواناست و اين خوب نيست دوم وقتي داري پروسيجرو تو بانك فراخواني ميكني مقداري ، پارامتري نميفرستي و اين اشتباهه . ببين كد خودت و كمي دستكاري كردم كار ميكنه اگه بازام امري بود در خدمتم موفق باشي

81579001
پنج شنبه 12 آذر 1388, 15:30 عصر
سلام
مشکل حل شد
در مورد کدها هم با ویزارد یاد گرفتم ولی حالا می خواهم کد نویسی کنم ولی نمی دانم چطوری
این کدهارا هر کدامش را از یک جای پیدا کردم ای کاش یک مرجع مناسب البته فارسی به بنده معرفی می کردید
تا بهتر بتوانم کار کنم

با تشکر فراوان از شما ودیگر اساتید گرامی