View Full Version : سوال: Update در گرید ویو
81579001
پنج شنبه 22 مرداد 1394, 15:51 عصر
سلام
در گرید ویو از چک باکس استفاده کردم که از نظر نمایش ایرادی ندارد ولی در قسمت
Edit نیز کد های لازم را ندارم البته برای چک باکس
پروژه را هم گذاشتم اگر امکانش هست اصلاح و راهنمای بفرماید
متشکرم
LostOfMind
پنج شنبه 22 مرداد 1394, 16:25 عصر
کد رو به شکل زیر تغییر بده:
protected void gdvEshow_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
id = Convert.ToInt32(gdvEshow.DataKeys[e.RowIndex].Value.ToString());
GridViewRow row = (GridViewRow)gdvEshow.Rows[e.RowIndex];
TextBox textasm = (TextBox)row.Cells[1].Controls[0];
TextBox textcod = (TextBox)row.Cells[2].Controls[0];
CheckBox chkA = (CheckBox)row.Cells[3].Controls[0];
CheckBox chkB = (CheckBox)row.Cells[4].Controls[0];
CheckBox chkC = (CheckBox)row.Cells[5].Controls[0];
gdvEshow.EditIndex = -1;
Lib.con.Open();
string CMD = string.Format(@"update tblgv set asm={0}, cod={1}, a={2}, b={3}, c={4} where id={5}", textasm.Text, textcod.Text, chkA.Checked, chkB.Checked, chkC.Checked, id);
SqlCommand cmd = new SqlCommand(CMD, Lib.con);
cmd.ExecuteNonQuery();
Lib.con.Close();
gdvEshow.DataBind();
}
81579001
پنج شنبه 22 مرداد 1394, 21:41 عصر
سلام
بعد از اجرا در خروجی این پیام خطا را دارد
Server Error in '/gvok' Application.
Invalid column name 'False'.
Invalid column name 'False'.
Invalid column name 'False'.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.Data.SqlClient.SqlException: Invalid column name 'False'.
Invalid column name 'False'.
Invalid column name 'False'.
Source Error:
Line 73: string CMD = string.Format(@"update tblgv set asm={0}, cod={1}, a={2}, b={3}, c={4} where id={5}", textasm.Text, textcod.Text, chkA.Checked, chkB.Checked, chkC.Checked, id);
Line 74: SqlCommand cmd = new SqlCommand(CMD, Lib.con);
Line 75: cmd.ExecuteNonQuery();
Line 76: Lib.con.Close();
Line 77: gdvEshow.DataBind();
Source File: d:\gvok\Default.aspx.cs Line: 75
LostOfMind
شنبه 24 مرداد 1394, 17:48 عصر
فایل را ضمیمه کردم
ابتدا برای ایجاد بانک اطلاعاتی و جدول ها صفحه ی Initilizer.aspx را اجرا کنید سپس می تونید صحه Default.aspx را اجرا کنید:
http://astanweb.ir/files/file/1394/WebSite3.zip
81579001
یک شنبه 25 مرداد 1394, 01:41 صبح
سلام
ممنون از پیگیری شما
نام دیتابیس
[dbamrazi]
چدول
CREATE TABLE [dbo].[tblgv](
[id] [int] IDENTITY(1,1) NOT NULL,
[asm] [nvarchar](50) NULL,
[cod] [int] NULL,
[a] [bit] NULL,
[b] [bit] NULL,
[c] [bit] NULL,
CONSTRAINT [PK_tblgv] PRIMARY KEY CLUSTERED
(
[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
کد .................................................. .................................................. ...
protected void gdvEshow_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
id = Convert.ToInt32(gdvEshow.DataKeys[e.RowIndex].Value.ToString());
GridViewRow row = (GridViewRow)gdvEshow.Rows[e.RowIndex];
TextBox textasm = (TextBox)row.Cells[1].Controls[0];
TextBox textcod = (TextBox)row.Cells[2].Controls[0];
CheckBox chkA = (CheckBox)row.Cells[3].Controls[0];
CheckBox chkB = (CheckBox)row.Cells[4].Controls[0];
CheckBox chkC = (CheckBox)row.Cells[5].Controls[0];
gdvEshow.EditIndex = -1;
Lib.con.Open();
string CMD = string.Format(@"update tblgv set asm={0}, cod={1}, a={2}, b={3}, c={4} where id={5}", textasm.Text, textcod.Text, chkA.Checked, chkB.Checked, chkC.Checked, id);
SqlCommand cmd = new SqlCommand(CMD, Lib.con);
cmd.ExecuteNonQuery();
Lib.con.Close();
gdvEshow.DataBind();
}
خطا :================================================= ===========
134306
خطا :-------------------------------------------------------------------------------------------------------------------------
134307
همه فایلپ
متشکرم
jam823
یک شنبه 25 مرداد 1394, 02:18 صبح
فایل را ضمیمه کردم
ابتدا برای ایجاد بانک اطلاعاتی و جدول ها صفحه ی Initilizer.aspx را اجرا کنید سپس می تونید صحه Default.aspx را اجرا کنید:
http://astanweb.ir/files/file/1394/WebSite3.zip
سلام :لبخندساده:
دوست عزیز میشه بگی چطوری بانک رو ساختی با صفحه Initilizer البته متوجه شدم داده ها رو کجا وارد کردی از یه فایل dll هم استفاده کردی من مبتدی هستم اگه میشه توضیح بدین.
با ابن که کامل متوجه شدم اما نمیدونم چرا گنگه ممنون
LostOfMind
یک شنبه 25 مرداد 1394, 18:54 عصر
سلام :لبخندساده:
دوست عزیز میشه بگی چطوری بانک رو ساختی با صفحه Initilizer البته متوجه شدم داده ها رو کجا وارد کردی از یه فایل dll هم استفاده کردی من مبتدی هستم اگه میشه توضیح بدین.
با ابن که کامل متوجه شدم اما نمیدونم چرا گنگه ممنون
سلام من از EntityFramework (http://astanweb.ir/articles.aspx?cid=7) استفاده کردم.
در این روش ابتدا مدل توسط برنامه نویس در محیط Entity Data Model Designer ایجاد میشود، سپس بطور خودکار پایگاه داده و کدها و اسکریپ های موردنیاز از روی مدل ساخته میشوند.
من کلاس Table1رو به این صورت تعریف کردم:
public Table1()
{
//
// TODO: Add constructor logic here
//
}
public Table1(string fullname,string code,bool a, bool b,bool c)
{
this.FullName = fullname;
this.Code = code;
this.A = a;
this.B = b;
this.C = c;
}
[System.ComponentModel.DataAnnotations.Required]
[System.ComponentModel.DataAnnotations.Key]
[System.ComponentModel.DataAnnotations.Schema.Datab aseGenerated(System.ComponentModel.DataAnnotations .Schema.DatabaseGeneratedOption.Identity)]
public int ID { get; set; }
public string FullName { get; set; }
public string Code { get; set; }
public bool A { get; set; }
public bool B { get; set; }
public bool C { get; set; }
وقتی برای اولین بار این کلاس فراخوانی شود بانک اطلاعاتی با همین مشخصات ایجاد میشود توسط کلاس DataBaseContext.cs
و در کلاس DataBaseInitializer مقدار دهی اولیه انجام شد:
protected override void Seed(DataBaseContext context)
{
base.Seed(context);
Table1 obj = null;
obj = new Table1("hamzeh", "123", true, true, true);
context.tables.Add(obj);
obj = new Table1("reza", "321", true, false, true);
context.tables.Add(obj);
obj = new Table1("hasan", "123", false, true, false);
context.tables.Add(obj);
obj = new Table1("LostOfMind", "12345", true, false, true);
context.tables.Add(obj);
context.SaveChanges();
}
این متد تنها یکبار اجرا خواهد شد بنابراین با هربار اجرای صفحه این داده ها اضافه نخواهند شد و تنها بار اول داده ها در بانک ذخیره میشن
از این قسمت برای مقدار دهی اولیه تنظیمات سایت وقتی برای اولین بار بر روی سرور قرار میگیرد میشه استفاده کرد.
من گفتم اول صفحه ی Initilizer.aspx رو برای ساخت بانک اجرا کنید دلیلش هم اینه که اولین درخواست از بانک کلیه جداول بانک ساخته میشن....
LostOfMind
دوشنبه 26 مرداد 1394, 14:38 عصر
سلام
ممنون از پیگیری شما
نام دیتابیس
[dbamrazi]
چدول
CREATE TABLE [dbo].[tblgv](
[id] [int] IDENTITY(1,1) NOT NULL,
[asm] [nvarchar](50) NULL,
[cod] [int] NULL,
[a] [bit] NULL,
[b] [bit] NULL,
[c] [bit] NULL,
CONSTRAINT [PK_tblgv] PRIMARY KEY CLUSTERED
(
[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
کد .................................................. .................................................. ...
protected void gdvEshow_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
id = Convert.ToInt32(gdvEshow.DataKeys[e.RowIndex].Value.ToString());
GridViewRow row = (GridViewRow)gdvEshow.Rows[e.RowIndex];
TextBox textasm = (TextBox)row.Cells[1].Controls[0];
TextBox textcod = (TextBox)row.Cells[2].Controls[0];
CheckBox chkA = (CheckBox)row.Cells[3].Controls[0];
CheckBox chkB = (CheckBox)row.Cells[4].Controls[0];
CheckBox chkC = (CheckBox)row.Cells[5].Controls[0];
gdvEshow.EditIndex = -1;
Lib.con.Open();
string CMD = string.Format(@"update tblgv set asm={0}, cod={1}, a={2}, b={3}, c={4} where id={5}", textasm.Text, textcod.Text, chkA.Checked, chkB.Checked, chkC.Checked, id);
SqlCommand cmd = new SqlCommand(CMD, Lib.con);
cmd.ExecuteNonQuery();
Lib.con.Close();
gdvEshow.DataBind();
}
خطا :================================================= ===========
134306
خطا :-------------------------------------------------------------------------------------------------------------------------
134307
همه فایلپ
متشکرم
ضمیمه شده است
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.