View Full Version : مبتدی: ایجاد شرط برای data gride
babak6655
یک شنبه 13 اسفند 1391, 21:33 عصر
من یه چک باکس تو دیتاگرید دارم که به دیتا بیس وصله میخوام اگه بگم اگه چک باکسه فعال شد به یه فیلدی به نام s یه واحد اضافه کنه . ولی نمیدونم شرطمو چی بذارم
if (h1DataGridViewCheckBoxColumn= true )
{
SqlConnection objcon = new SqlConnection("server=localhost;database=test2;" + "Integrated Security = True");
string query = " INSERT INTO Table_1 " + " (s)" + " values '" + 1 + "'";
SqlCommand objcom2 = new SqlCommand(query, objcon);
// objcom2.Parameters.AddWithValue("@h1", h1DataGridViewCheckBoxColumn);
// objcom2.Parameters.AddWithValue("@h2", h2DataGridViewCheckBoxColumn);
SqlDataAdapter objadapter = new SqlDataAdapter();
objadapter.InsertCommand = objcom2;
objcon.Close();
Form2_Load(null, null);
veniz2008
یک شنبه 13 اسفند 1391, 22:19 عصر
سلام. اگه منظور شما رو درست متوجه شده باشم:
if(Convert.ToBoolean(dataGridView1.Rows[0].Cells[4].Value) == true)
{
SqlDataAdapter da = new SqlDataAdapter("select s from Tabel_1",con);
DataTable dt = new DataTable();
da.Fill(dt);
int temp = Convert.ToInt32(dt.Rows[0][0].ToString()) + 1;
SqlConnection con = new SqlConnection("Data Source =(local);Initial Catalog=test1;Integrated Security=True");
sqlcommand cmd = new sqlcommand("insert into Tabel_1 (s) values(temp)",con);
con.open();
cmd.ExecuteNonQuery();
con.close();
}
کدها رو خودتون تایپ کنید. من ویزوال دم دستم نبود مستقیم تایپ کردم.
babak6655
دوشنبه 14 اسفند 1391, 15:38 عصر
سلام. اگه منظور شما رو درست متوجه شده باشم:
if(Convert.ToBoolean(dataGridView1.Rows[0].Cells[4].Value) == true)
{
SqlDataAdapter da = new SqlDataAdapter("select s from Tabel_1",con);
DataTable dt = new DataTable();
da.Fill(dt);
int temp = Convert.ToInt32(dt.Rows[0][0].ToString()) + 1;
SqlConnection con = new SqlConnection("Data Source =(local);Initial Catalog=test1;Integrated Security=True");
sqlcommand cmd = new sqlcommand("insert into Tabel_1 (s) values(temp)",con);
con.open();
cmd.ExecuteNonQuery();
con.close();
}
کدها رو خودتون تایپ کنید. من ویزوال دم دستم نبود مستقیم تایپ کردم.
نه خیر جواب نداد:متفکر:
فکر کنم به نوع check box گیر میده نسبت به شرطمون (convert . boolean )
error اینه
Unable to cast object of type 'System.Windows.Forms.DataGridViewCheckBoxColumn' to type 'System.IConvertible'.
veniz2008
دوشنبه 14 اسفند 1391, 15:46 عصر
کدی رو که تایپ کردید و خطا میده رو بذارید.
babak6655
دوشنبه 14 اسفند 1391, 15:52 عصر
کدی رو که تایپ کردید و خطا میده رو بذارید.
if(Convert.ToBoolean(dataGridView1.Rows[1].Cells[3].Value)==true)
{
SqlConnection objcon = new SqlConnection("server=localhost;database=test2;" + "Integrated Security = True");
SqlCommand objcom = new SqlCommand("insert into Tabel_1 (s) values(temp)", objcon);
SqlDataAdapter da = new SqlDataAdapter("select s from table_1", objcon);
DataTable dt = new DataTable();
int temp = Convert.ToInt32(dt.Rows[0][0].ToString()) + 1;
objcon.Open();
objcom.ExecuteNonQuery();
objcon.Close();
}
babak6655
دوشنبه 14 اسفند 1391, 15:57 عصر
[QUOTE=babak6655;1714872][CSHARP]
این یه برنامه حضور غیاب هست گفتم از پایگاه بخونه ذو دو تا فیاد هم تو دیتا گرید check box گداشتم که اگه تیک خورد یه فیلدی به نام s را یکی اضافه کنه
اینم برنامم هست
http://uplod.ir/haag84jt3yw0/test2.rar.htm
veniz2008
دوشنبه 14 اسفند 1391, 16:08 عصر
کد درست هست، فقط آیا Rows 1 (یعنی دومین سطر) و Cells 3 (یعنی چهارمین ستون )وجود داره؟ .تو سی شارپ اندیس ها از 0 شروع میشه.
این مساله رو بررسی کنید. اگر بازم خطا داد، یه عکس از گرید بگیرید و بذارید.
babak6655
دوشنبه 14 اسفند 1391, 16:12 عصر
[QUOTE=veniz2008;1714886]کد درست هست، فقط آیا Rows 1 (یعنی دومین سطر) و Cells 3 (یعنی چهارمین ستون )وجود داره؟ .تو سی شارپ اندیس ها از 0 شروع میشه.
این مساله رو بررسی کنید. اگر بازم خطا داد، یه عکس از گرید بگیرید و بذارید.[/QUOTE
خود برنامه رو فرستادم
babak6655
دوشنبه 14 اسفند 1391, 16:34 عصر
[QUOTE=babak6655;1714890][QUOTE=veniz2008;1714886]کد درست هست، فقط آیا Rows 1 (یعنی دومین سطر) و Cells 3 (یعنی چهارمین ستون )وجود داره؟ .تو سی شارپ اندیس ها از 0 شروع میشه.
این مساله رو بررسی کنید. اگر بازم خطا داد، یه عکس از گرید بگیرید و بذارید.[/QUOTE
یه سوال این کد آدرس فیلد دیتابیس که باید یکی اضافه بشه؟
int temp = Convert.ToInt32(dt.Rows[0][0].ToString()) + 1;
veniz2008
دوشنبه 14 اسفند 1391, 16:56 عصر
یه سوال این کد آدرس فیلد دیتابیس که باید یکی اضافه بشه؟
int temp = Convert.ToInt32(dt.Rows[0][0].ToString()) + 1;
به دیتاتیبل نگاه کن ببین چه چیزی داخلش قرار میگیره؟.(من اومدم یه select به جدولی که فیلد s رو داره زدم و مقدار فعلیش رو درآوردم و بعدش هم یک واحد بهش اضافه کردم).
موفق باشید.
babak6655
دوشنبه 14 اسفند 1391, 22:22 عصر
یه سوال این کد آدرس فیلد دیتابیس که باید یکی اضافه بشه؟
به دیتاتیبل نگاه کن ببین چه چیزی داخلش قرار میگیره؟.(من اومدم یه select به جدولی که فیلد s رو داره زدم و مقدار فعلیش رو درآوردم و بعدش هم یک واحد بهش اضافه کردم).
موفق باشید.
منطورم اینکه حتما da.rows[0] [0] n باشه ؟
یا آدرس فیلد s را از پایگاه داده بدم؟
veniz2008
دوشنبه 14 اسفند 1391, 22:54 عصر
منطورم اینکه حتما da.rows[0] [0] n باشه ؟
یا آدرس فیلد s را از پایگاه داده بدم؟
ببینید دوست عزیز، دستور select s from Tabel_1 ،فقط یه ستون برمیگردونه و اگر فقط یه مقدار برای s در جدول وجود داشته باشه پس 1 سطر هم برمیگردونه. یعنی
Rows[0][0]. صفر اول یعنی اولین سطر و صفر دوم یعنی اولین ستون.
من از گفته های شما مبنی بر اینکه به مقدار s میخواید 1 واحد اضافه کنید اینطور برداشت کردم که s در جدول شما فقط یک مقدار داره.
babak6655
دوشنبه 14 اسفند 1391, 23:20 عصر
ببینید دوست عزیز، دستور select s from Tabel_1 ،فقط یه ستون برمیگردونه و اگر فقط یه مقدار برای s در جدول وجود داشته باشه پس 1 سطر هم برمیگردونه. یعنی
Rows[0][0]. صفر اول یعنی اولین سطر و صفر دوم یعنی اولین ستون.
من از گفته های شما مبنی بر اینکه به مقدار s میخواید 1 واحد اضافه کنید اینطور برداشت کردم که s در جدول شما فقط یک مقدار داره.
اینو گرفتم
ولی نکته اینجاست که جدول dta gride من تعدادی سطر و ستون داره که هر گدوم یک check box داره نمیشه برای هر خط شرط گداشت
این کد من اشتباه هست
private void Form2_Load(object sender, EventArgs e)
{
// TODO: This line of code loads data into the 'test2DataSet.Table_1' table. You can move, or remove it, as needed.
this.table_1TableAdapter.Fill(this.test2DataSet.Ta ble_1);
con = new SqlConnection("server=localhost;database=test2;" + "Integrated Security = True");
datd = new SqlDataAdapter("select s from table_1", con);
}
private void button2_Click(object sender, EventArgs e)
{
Close();
}
private void button1_Click(object sender, EventArgs e)
{
int i, j;
for (i = 0; i <= 20; i++)
{
for (j = 1; j <= 2; j++)
if (Convert.ToBoolean(dataGridView1.Rows[i].Cells[j].Value) == true)
{
DataTable dt = new DataTable();
int temp = Convert.ToInt32(dt.Rows[i][j].ToString()) + 1;
SqlCommand objcom = new SqlCommand("insert into table_1 (s) values(temp)", con );
con.Open();
objcom.ExecuteNonQuery();
con.Close();
}
}
}
babak6655
دوشنبه 14 اسفند 1391, 23:30 عصر
عکس فرم نمایش
http://upload.tehran98.com/img1/3kjujvhcyl0yw3p2pqxw.jpg
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.