PDA

View Full Version : اشکال این کد چی هست



salmah
جمعه 22 خرداد 1394, 18:47 عصر
سلام
من میخوام به طور همزمان توی جدولم یه فیلد را محاسبه کنم جدولtitems را ویرایش کنم


SqlConnection cnc = new SqlConnection();
cnc.ConnectionString = ConfigurationManager.ConnectionStrings["xxxxConnectionString1"].ToString();
cnc.Open();

SqlCommand cmd = new SqlCommand("select id from titems", cnc);
DataTable table = new DataTable();
table.Load(cmd.ExecuteReader());
foreach (DataRow row in table.Rows)
{
// مقدار محاسبه ای
//*******************************************


suminitial = iSumVorodi - iSumKoroji + iSinitial;


//************************************************ * * *
SqlCommand cmdedit = new SqlCommand("UPDATE titems SET initialamount = @initialamount, Sdtainitialamount = @Sdtainitialamount, Edtainitialamount = @Edtainitialamount ", cnc);

cmdedit.Parameters.AddWithValue("@initialamount", suminitial);
cmdedit.Parameters.AddWithValue("@Edtainitialamount", "1395/12/29");
cmdedit.Parameters.AddWithValue("@Sdtainitialamount", "1394/12/29");

cmdedit.ExecuteNonQuery();

}
cnc.Close();




من میخوام این کد به طور همزمان بیاد و مقداری را برای هر id محاسبه کنه و در جدول ویرایش انجام بشه
ولی فقط زمانی که یک id در جدول items دارم درست کار می کنه

فک کنم برا دستور update باید شرط where id=@idبذارم . ولی نمی دونم چه جور پارامتر@id را مقدار دهی کنم

loti88
جمعه 22 خرداد 1394, 22:58 عصر
منظورتون از جدول، GridView هستش؟ و اینکه چطوری مقدار @id رو از جدول بگیرین؟

korosh00
شنبه 23 خرداد 1394, 01:43 صبح
cmd.CommandText = "update titems set titr='" + TextBox1.Text + "',edameh='" + TextBox2.Text + "',aks='" + picurl1 + "' where idmohem=" + Label5.Text;



این نمونه برای آپدیت با توجه به id

salmah
شنبه 23 خرداد 1394, 07:29 صبح
منظورتون از جدول، GridView هستش؟ و اینکه چطوری مقدار @id رو از جدول بگیرین؟
نه من اصلا گرید ویو ندارم
ببینید یه جدول دارم نام کالا که داری مقدار اولیه است و جدول درخواست ها که ورودوخروج کالا در این جدول ثبت میشه.
الان میخوام انبار گردانی را انجام بدم یعنی بیام و مجموع ورود و خروج کالا را به دست بیارم و از مقدار اولیه کم کنم و عمل ویرایش را رویاین فیلد انجام بدم
میخوام با یه کلیک این اتفاق بیفته

salmah
شنبه 23 خرداد 1394, 07:32 صبح
این نمونه برای آپدیت با توجه به id
ممنون بادستور آپدیت مشکلی ندارم با مقدار دهی به پامترش مشکل دارم باتوجه به این که پارمتر id را توی DataTable ریختم الان نمی دونم چه جور این مقدار را به دستور آپدیت نسبت بدم

malloc
شنبه 23 خرداد 1394, 08:31 صبح
@id = DataRow["id"].toString();

salmah
شنبه 23 خرداد 1394, 08:53 صبح
@id = DataRow["id"].toString();

DataRow را نمیشناسه

malloc
شنبه 23 خرداد 1394, 09:56 صبح
DataRow را نمیشناسه

درست عزیز منظورم همون row بود که شما توی foreach تعریف کردی

loti88
شنبه 23 خرداد 1394, 13:01 عصر
دوست عزیز این کد @id = DataRow["id"].toString(); کامل نیست
در اینجا باید شماره سطر مشخص بشه و چون با توجه به id قراره یک سطر برگردونه باید کد اینجوری نوشته شه:
()id=dt.rows[0]["id"].tostring
dt همون اسم datatable هستش که شما Row رو توش ریختین

malloc
شنبه 23 خرداد 1394, 13:35 عصر
دوست عزیز این کد @id = DataRow["id"].toString(); کامل نیست
در اینجا باید شماره سطر مشخص بشه و چون با توجه به id قراره یک سطر برگردونه باید کد اینجوری نوشته شه:
()id=dt.rows[0]["id"].tostring
dt همون اسم datatable هستش که شما Row رو توش ریختین

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

salmah
یک شنبه 24 خرداد 1394, 08:01 صبح
الان با این خطا مواجه میشم
Ambiguous column name 'id'

malloc
یک شنبه 24 خرداد 1394, 08:08 صبح
الان با این خطا مواجه میشم
Ambiguous column name 'id'

دستور select شما دقیقا همون سلکتی هست که توی پست اول گذاشتید ؟؟؟ چون این خطا بیشتر وقتها واسه واقتیه که join زدی