PDA

View Full Version : مشکل در update database



m.khani_121
سه شنبه 27 تیر 1391, 17:02 عصر
سلام دوستان

من یه table تو database دارم که شامل چندتا سطر و ستون هست . حالا اگه بخوام فیلد اول هر سطر این جدول رو با textbox سرچ کنم و شماره ردیف رو پیدا کنم و اطلاعات ستون اون سطر را یکی یکی عوض کنم چیکار باید بکنم ؟؟؟

خیلی خیلی ممنون عزیزان

fjm11100
سه شنبه 27 تیر 1391, 17:16 عصر
خود کویری update میتونه عبارت where داشته باشه راهنمای دستور where را مظالعه کن. بعد کافیه مقدار textbox را به عنوان ورودی sp یا اگر بشکل کویری کار میکنی توی string کویری بزاری

m.khani_121
سه شنبه 27 تیر 1391, 17:18 عصر
نه کوئری کار نمیکنم . عزیز میتونی واضح تر بگی ؟

veniz2008
سه شنبه 27 تیر 1391, 17:49 عصر
سلام،ظاهرا با sp کار میکیند،کد زیر ستون username رو میگرده تا برابر با textbox شما هست یا نه. اگر بود مقادیر اون رکورد رو تغییر میده:

create proc update_user
@username nvarchar(50),
@password nvarchar(50),
@tel nchar(11),
@address nvarchar(250)
as
update users set Password=@password,Tel=@tel,Address=@address
where UserName=@username
go

m.khani_121
چهارشنبه 28 تیر 1391, 09:13 صبح
دوستان کد من اینجوریه :



SqlConnection con = new SqlConnection();
SqlCommand cmd1 = new SqlCommand();
DataTable dt1 = new DataTable();
con.ConnectionString = "Data Source=.\\SQLEXPRESS;AttachDbFilename=S:\\project-phoone\\hoghog-tir26\\hoghogh\\parametr.mdf;Integrated Security=True;User Instance=True";
cmd1.Connection = con;
SqlDataAdapter da1 = new SqlDataAdapter("select * from Table1", con);


حالا من وقتی تو textbox فیلد اول یکی از سطرها رو زدم ، بره سطر رو پیدا کنه و مقادیر همه ی ستونها رو تغییر بده .

barnamenevisforme
چهارشنبه 28 تیر 1391, 09:36 صبح
سلام
سوالتون یه کم ابهام داره،این موضوعی که شما مطرح کردید بیشتر مربوط به جستجو هست تا update کردن.
به جای عبارت "select * from Table1" باید عبارت “select * from Table1 where fieldname=” & textbox1.text

رو قرار بدید.که feildname نام همان فیلد مد نظر شما خواهد بود .

m.khani_121
چهارشنبه 28 تیر 1391, 09:38 صبح
بله دوست عزیز مشکل من همین جا بود . یه سوالی حالا وقتی فیلد رو پیدا کرد چه جوری سطر رو پیدا کنم و یکی یکی ستونها رو با textbox ، آپدیت کنم ؟؟ ممنون میشم .

barnamenevisforme
چهارشنبه 28 تیر 1391, 10:03 صبح
سلام
دوست عزیز بعد از فراخونی da1.fill(dt1)
datatable شما از یافته ها پر میشه.حالا میتونی واسه اینکه تک تک سطرهایی که پیدا شدن رو با استفاده از dt1.rows[i].columns[j]
در textbox متناظر ست کنی و بعد:
SqlClient.SqlCommand UpDateCommand = New SqlClient.SqlCommand;
UpDateCommand.Connection = myconnection;
UpDateCommand = New SqlClient.SqlCommand("UPDATE Table1 SET field1='" & txt_field1.Text & _
"',field2='" & txt_field2.Text & _
"' WHERE ID=" & Str(record_id), myconnection)
myconnection.Open();
UpDateCommand.ExecuteNonQuery();
myconnection.Close();

که record_id در اینجا همون primarykey اون جدوله و احتمالا خودتون میدونید در کدوم فیلد قرار دراه.
از این کدها استفاده کنی.ولی چیزی که مسلمه اینه که با کدنویسی خیلی وقت باید صرف کنید تا این کار رو انجام بدید.بهتون پیشنهاد میکنم از خصوصیت databinding استفاده کنید.
این آدرس مثال ها در مورد کار با database روی سیستم خودتون هست:
Program Files\Microsoft Visual Studio 9.0\Samples\1033\CSharpSamples\LinqSamples\WinForm sDataBinding