PDA

View Full Version : دیتابیس



me1364
پنج شنبه 18 تیر 1388, 00:13 صبح
سلام من در برنامه ام این کدها را برای ذخیره داده در دیتا بیس نوشتم


newRow = ds.Tables["Login"].NewRow();
SqlCommand con1;
String strSql1;
strSql1 = "insert into Login(" + "Name, " +
"Family, " +
"[User], " +
"Pass " +
") values ('" + textBox1.Text + "','" + textBox2.Text + "','" +
textBox3.Text + "','" + textBox4.Text + "')";
con.Open();
con1 = new SqlCommand(strSql1, con);
con1.ExecuteNonQuery();
con.Close();
ds.Clear();
da.Fill(ds, "Login");

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


strSql = "SELECT * FROM Login";
con = new SqlConnection(StrCon);
con.Open();
da = new SqlDataAdapter(strSql, con);
da.Fill(ds, "Login");
textBox1.DataBindings.Add(new Binding("Text",ds,"Login.Name"));
textBox2.DataBindings.Add(new Binding("Text",ds,"Login.Family"));
textBox3.DataBindings.Add(new Binding("Text",ds,"Login.User"));
textBox4.DataBindings.Add(new Binding("Text",ds,"Login.Pass"));
con.Close();


این هم متغیرهام


DataSet ds = new DataSet();
String strSql;
String StrCon = "Data Source=.;Initial Catalog=Store;Persist Security Info=True;User ID=sa;Password=123";
SqlDataAdapter da;
SqlConnection con;
DataRow newRow;
SqlCommandBuilder cb;


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

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

ممنون از راهنمایی تون

Yasersadegh
پنج شنبه 18 تیر 1388, 18:52 عصر
سلام دوست عزيز


حالا میخوام کاری کنم تا داده ها ذخیره میشه یعنی کد اول همون موقع در دیتا گرید نمایش داده بشه اینجوری یکبار باید فرمم را ببندم و بعد باز کنم؟
خوب دوست عزيز شما مي تونيد يه متد مثلا به نام showinGrid بنويسد و در اون كل اطلاعات ديتابيس رو select كنيد و در ديتاگريدتون برزيد و سپس در انتهاي كد ذخيره كردنتون، اين متد رو فراخواني كنيد!!:لبخندساده:(فكر مي كنم كه مي تونيد كد متد showinGrid رو بنويسيد!؟:چشمک:)


راستی برای دکمه حذف نمیدونم چه کدی بگذارم میخوام روی هرسطری که کلیک کنم و دکمه حذف را بزنم اون سطر حذف بشه
براي اينكار در رويداد onclick دكمه حذف از كوئري زير استفاده كنيد!!


SqlConnection connection = new SqlConnection(connectionString);
connection.Open();

SqlCommand command = new SqlCommand("delete from Tablename where field_Key='"+dataGridView1.CurrentRow.Cells[0].Value.ToString()+"'", connection);

بخشهايي كه قرمز كردم رو با توجه به ديتابيست بايد تنظيم كني!!
** توجه داشته باشيد كه حتما بايد يه فيلد كليدي داشته باشيد كه نام فيلد رو به جاي filed_key مي نويسيد و ستون مربوط به اين فيلد در ديتاگريدتون رو به جاي 0 مي نويسيد!!:لبخندساده:

موفق باشيد:چشمک:

Mahdi.Kiani
پنج شنبه 18 تیر 1388, 19:21 عصر
سلام دوست عزیز @me1364 (http://www.barnamenevis.org/forum/member.php?u=65674)
روش کدنویسیتون مشکلات زیادی داره./
اگر من به عنوان کاربر برنامه شما، یک کد مخرب درون textBox1 یا textBiox2 و یا 3 یا 4 بنویسم، می دونید چه اتفاقی میافته؟
در مورد عناوین زیر حتما جستجو و مطالعه کنید:
Sql Injection
Stroed procedure
LINQ و مفاهیم وابسته به آن
تکنولوژی ها وابزارهای جدید برای کار با داده
...

alihassanabadi
جمعه 19 تیر 1388, 00:01 صبح
سلام
دوستمون جناب yasersadegh جواب دادن ولی من کاملش میکنم
میتونی برای اینکه بعد از اضافه کردن,,, اطلاعات نمایش داده بشه از bindingsource استفاده کنی
برای این کار بعد از کد اضافه کردن کد زیر رو بنویس


SqlDataAdapter adapter2 = new SqlDataAdapter("select *from login", "Data Source=(local);Initial Catalog=databasename;Integrated Security=True");
DataSet dataset1 = new DataSet();
adapter2.Fill(dataset1, "tblname");
BindingSource bs = new BindingSource(dataset1, "tblname");
dataGridView1.DataSource = bs;

با تشکر
سعادت دیگران بخش مهمی از خوشبختی ماست.

me1364
شنبه 20 تیر 1388, 13:03 عصر
روش کدنویسیتون مشکلات زیادی داره

سلام آقای کیانی حدس میزنم اما این اولین برنامه ام هست که دارم با دیتا بیس ها کار میکنم روش دیگری بلد نیستم متاسفانه:ناراحت:

من اگر بخوام دومقدار که در textbox هام وجود داره را با دیتا بیس مقایسه کنم ببینم یکی هست یا نه باید چکار کنم این کار را میخوام برای ساخت فرم Login به برنامه درست کنم.

alihassanabadi
دوشنبه 22 تیر 1388, 18:41 عصر
سلام
این کد رو بنویس


SqlDataAdapter adapter1 = new SqlDataAdapter("select * from tblname where username=@u and password=@p", "Data Source=(local);Initial Catalog=databasename;Integrated Security=True");
DataSet dataset1 = new DataSet();
adapter1.SelectCommand.Parameters.AddWithValue("@u", txtuser.Text.Trim());
adapter1.SelectCommand.Parameters.AddWithValue("@p", txtpassword.Text.Trim());
adapter1.Fill(dataset1);
if (dataset1.Tables[0].Rows.Count == 1)
{


}

else
{
if (MessageBox.Show("نام کاربر یا کلمه عبور اشتباه است ,لطفا دوباره وارد کنید", "!خطا", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1) == DialogResult.OK)

}


اگه شرط درست باشه یعنی یوزر و پسورد معتبر است
البته این موقعی کار میکنه که یوزر نیم و پسورد ها با هم متفاوت باشن
با تشکر
سعادت دیگران بخش مهمی ازخوشبختی ماست.

3411338M
چهارشنبه 24 تیر 1388, 08:38 صبح
یعنی چی موقعی کار میکنه که یوزر نیم و پسورد ها با هم متفاوت باشن؟؟؟؟؟؟؟؟؟؟؟؟

moferferi
چهارشنبه 24 تیر 1388, 18:02 عصر
سلام
.اقا این روشی که بهت میگم بهترین روش و استاندارد هست.نیاز به کد نویسی زیاد هم نداره

string strcon2 = "server=192.168.0.1,1632;Initial Catalog=northwnd;integrated security=true";
string gry = @"select * from employees";
SqlConnection con = new SqlConnection(strcon2);
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = new SqlCommand(gry, con);
SqlCommandBuilder cb = new SqlCommandBuilder(da);
DataSet ds = new DataSet();
da.Fill(ds, "employees");
DataTable dt = ds.Tables["employees"];
DataRow newrow = dt.NewRow();
newrow["FirstName"] = textBox1.Text;
newrow["lastname"] = textBox2.Text;
newrow["titleofcourtesy"] = textBox3.Text;
newrow["city"] = textBox4.Text;
newrow["country"] = textBox5.Text;
dt.Rows.Add(newrow);
dataGridView1.DataSource = dt;
da.Update(ds, "employees");
بعد از اینکه مقادیر وارد جدول شد تغیرات را دیتاگریدویو نشون میده

alihassanabadi
یک شنبه 04 مرداد 1388, 09:56 صبح
یعنی چی موقعی کار میکنه که یوزر نیم و پسورد ها با هم متفاوت باشن؟؟؟؟؟؟؟؟؟؟؟؟

شما امتحان کن مثلا
دو تا یوزر نیم مثل هم توی جدولت ذخیره کن
username=ali
pass=123
,
username=ali
pass=145
و بعدش اون کد رو روش اعمال کن حالا ببین کار میکنه
ناگفته نمونه توی جدول یوزرها نمیشه دوتا یوزرنیم و پسورد مثل هم باشن
این کاررو خودت باید انجام بدی
یعنی جلوگیری از ثبت یوزر و پسورد تکراری
با تشکر
سعادت دیگران بخش مهمی از خوشبختی ماست.