PDA

View Full Version : مشکل این کد و برنامه تو قسمت ویرایش اطلاعات چیه؟



saeed-71
پنج شنبه 23 آذر 1391, 09:22 صبح
سلام.
مشکل این کد و برنامه تو قسمت ویرایش اطلاعات چیه؟واینکه این کد معنیش چیه؟

this.Form1_Load(sender, e);

برنامه رو پیوست کردم.
اینم کد برنامه.دیتا بیس من اکسس هستش.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;
using System.Collections;

namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
OleDbConnection cnn = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\DB.accdb");
OleDbDataAdapter sda;// = new OleDbDataAdapter();
OleDbCommand cmd;// = new OleDbCommand();
DataSet ds;// = new DataSet();
ArrayList arr;// = new ArrayList();
private void connect()
{
//cnn.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\DB.accdb";
}

public Form1()
{
InitializeComponent();
}
private DataSet LoadAll()
{
cmd = new OleDbCommand();
cmd.CommandText = "select * from TBL ";
cmd.Connection = cnn;
sda = new OleDbDataAdapter();
ds = new DataSet();
sda.SelectCommand = cmd;
cnn.Open();
sda.Fill(ds, "TBL");
cnn.Close();
return ds;
}


private void Form1_Load(object sender, EventArgs e)
{
dataGridView1.DataSource = LoadAll();
dataGridView1.DataMember = "TBL";
dataGridView1.AutoGenerateColumns = true;
}
private void Insert (OleDbCommand cmd)
{
//connect();
cnn.Close();
cnn.Open();
cmd.ExecuteNonQuery();
cnn.Close();

}

private void button1_Click(object sender, EventArgs e)
{
arr = new ArrayList();
arr.Add(textBox1.Text);
arr.Add(textBox2.Text);
cmd.CommandText = "insert into TBL (name,tell)values(@value1,@value2)";
cmd.Parameters.Clear();
cmd.Parameters.Add("@value1", OleDbType.VarChar).Value = arr[0].ToString();
cmd.Parameters.Add("@value2", OleDbType.VarChar).Value = arr[1].ToString();
Insert(cmd);
this.Form1_Load(sender, e);
//dataGridView1.DataSource = ds;
//dataGridView1.DataMember = "TBL";
//dataGridView1.DataMember

}

private void Delete(OleDbCommand cmd)
{
//connect();
cmd.Connection = cnn;
cnn.Open();
cmd.ExecuteNonQuery();
cnn.Close();
}

private void button3_Click(object sender, EventArgs e)
{
arr.Add(textBox1.Text);
arr.Add(textBox2.Text);
cmd.CommandText = "Delete from TBL where ID=@ID";
cmd.Parameters.Clear();
cmd.Parameters.Add("ID", OleDbType.Integer).Value = int.Parse(arr[0].ToString());
Delete(cmd);
LoadAll();
this.Form1_Load(sender, e);
}



}
}

saber_ershadi
پنج شنبه 23 آذر 1391, 10:26 صبح
سلام دوست عزیز
شما هیچ دستوری برای عمل ویرایش نداری
3 تا دستورsql تو برنامه داری select , insert , delete و دستوری برای عمل ویرایش نداری منظورم دستور Update که برای میرایش باید داشته باشی یعنی الان هیچ کاری برای ویرایش انجام نمیدی و دستورات حذف کردن کار میکنه؟من که فکر نمیکنم
و اون دسنوری که گفتی برای اینه که دیتا سورسه دیتا گرید رو مشخص کردی و یه جور refresh اطلاعات به حساب میاد

saeed-71
پنج شنبه 23 آذر 1391, 11:07 صبح
دستور ویرایشم گذاشتم ارور داد.فک نکنم اصلا ربطی به این قضیه داشته باشه

saber_ershadi
پنج شنبه 23 آذر 1391, 11:41 صبح
منظورت خطاییه که تو عکس نشون دادی؟

saeed-71
پنج شنبه 23 آذر 1391, 11:45 صبح
شما میتونیمه این برنامه رو تصحیح کنی؟

saeed-71
پنج شنبه 23 آذر 1391, 16:13 عصر
کسی از دوستان نمیدونه؟

saber_ershadi
پنج شنبه 23 آذر 1391, 21:18 عصر
این چیزی که تو کد بالا مشخصه کدی برای آپدیت یا ویرایش اطلاعات وجود نداره و اگه مشکلت تو اون خطاییه که تو عکس گذاشتی پس مشکلت تو حذف کردن چون خطا تو قسمت حذف کردن اتفاق میوفته که array list رو مثل عمل درج کردن تعریف نکردی یعنی باید arr از نوع array list تعریف کنی.در ضمن فکر نکنم برای حذف کردن باید اینکار رو انجام بدی ،برای حذف کردن باید فیلد id رو از دیتا گرید بخونی و تو id که دستور sql حذف کردن نوشتی بریزی بعد delete رو فراخوانی کنی.
و من نمیتونم framework 4 رو اجرا کنم تو پست های قبلی بهتون گفتم امید وارم تونسته باشم مفهوم رو رسونده باشم
موفق باشی

saeed-71
پنج شنبه 23 آذر 1391, 22:37 عصر
این چیزی که تو کد بالا مشخصه کدی برای آپدیت یا ویرایش اطلاعات وجود نداره و اگه مشکلت تو اون خطاییه که تو عکس گذاشتی پس مشکلت تو حذف کردن چون خطا تو قسمت حذف کردن اتفاق میوفته که array list رو مثل عمل درج کردن تعریف نکردی یعنی باید arr از نوع array list تعریف کنی.در ضمن فکر نکنم برای حذف کردن باید اینکار رو انجام بدی ،برای حذف کردن باید فیلد id رو از دیتا گرید بخونی و تو id که دستور sql حذف کردن نوشتی بریزی بعد delete رو فراخوانی کنی.
و من نمیتونم framework 4 رو اجرا کنم تو پست های قبلی بهتون گفتم امید وارم تونسته باشم مفهوم رو رسونده باشم
موفق باشی
دوست عزیز چجوری با این روش که شما گفتی حذف کنم؟کدش چیه؟چجوری اون سطر دیتا گرید رو انتخاب کنم و بعد حذفش کنم؟ممنون

saber_ershadi
جمعه 24 آذر 1391, 00:02 صبح
بیا یه متغییر رشته ای به اسم مثلا id ایجاد کن بعد بیا تو کد دکمه حذف این کار رو بکن text box1,text box2 رو حذف کن فیلد id دیتاگرید رو بریز درون id که بیرون تعریف کردی اینطوری

id = dg1["id", dg1.CurrentRow.Index].Value.ToString();

حالا بیا تابع delete رو فراخوانی کن و دوباره دیتا گرید رو رفرش کن مثله همون کاری که تو درج کردی:

this.Form1_Load(sender, e);

البته تو کد دکمه اومدی پارامتر id رو تعریف کردی ولی @ رو نذاشتی

saeed-71
جمعه 24 آذر 1391, 08:52 صبح
ببخشید میشه کدشو کامل بنویسی ؟