PDA

View Full Version : سوال: یه مشکل عجیب با update کردن



aminghaderi
یک شنبه 11 مرداد 1388, 09:46 صبح
با سلام و درود به دوستان واساتید.
یه مشکل عجبیب برام پیش آمده ؟؟؟

کد زیر رو داخل رویداد کلیک BtnLastEdit قرار دادم :





protected void BtnLastEdit_Click(object sender, EventArgs e)
{
pn = Profile.p_number;
lablMaseg.Text = pn;
c = Convert.ToInt32(pn) - 1;

cnn.ConnectionString = "Data Source=AMIN-F2B5BD44E0\\SQLEXPRESS;Initial Catalog=doa_db_187187;Integrated Security=True";
cmd.CommandText = "Update table_1cg set succinct=@succinct,complete=@complete Where p_number=@p_number";
cmd.Parameters.Clear();
cmd.Parameters.Add("@succinct", SqlDbType.NVarChar).Value = 2222;
cmd.Parameters.Add("@complete", SqlDbType.NVarChar).Value = 33333;
cmd.Parameters.Add("@p_number", SqlDbType.Int).Value = c;

//------------------------
cmd.Connection = cnn;
sda.SelectCommand = cmd;
cnn.Open();
sda.Fill(ds, "amin");
cmd.ExecuteReader();

cnn.Close();
//------------------------




هیچ خطایی گرفته نمی شه!!!
و هیچ تغییر بروی پایگاه اعمال نمی شود؟؟؟

دوستان و اساتید لطفا راهنمایی کنند ، اشکال کجاست؟؟؟

ASKaffash
یک شنبه 11 مرداد 1388, 10:15 صبح
سلام
چرا؟ دستور Update set succinct=@succinct نام جدول ندارد!

aminghaderi
یک شنبه 11 مرداد 1388, 11:10 صبح
سلام
چرا؟ دستور Update set succinct=@succinct نام جدول ندارد!

ممنونم از Askaffash جان .
یه اشتباه لپی بود .:اشتباه::گیج:
کد رو تصحیح کردم.

تابع updat رو برداشتم و جایش کدهای تابع رو نوشتم و خطا برطرف شد.
اما حالا هیچ تغییر در دیتابیس به وجود نمی یاد؟؟؟؟؟

یعنی فیلد های رکورد اصلا آپدیت نمی شوند؟؟؟؟

ASKaffash
دوشنبه 12 مرداد 1388, 07:57 صبح
سلام
ظاهر روش درست است این متد را تست کنید :


public void RunSQL(string CommandString, string ConnectionString)
{
SqlConnection TmpSqlConnection = new SqlConnection(ConnectionString);
SqlCommand TmpSqlCommand = new SqlCommand(CommandString, TmpSqlConnection);
TmpSqlCommand.CommandType = CommandType.Text;
TmpSqlConnection.Open();
TmpSqlCommand.ExecuteNonQuery();
TmpSqlConnection.Close();
}

behnam-s
دوشنبه 12 مرداد 1388, 14:55 عصر
سلام
چطور خطا نمی گیره ؟:متعجب:
شما در مقدار دهی های زیر:

cmd.Parameters.Add("@succinct", SqlDbType.NVarChar).Value = 2222;
cmd.Parameters.Add("@complete", SqlDbType.NVarChar).Value = 33333;
دو مقدار int رو به nvarchar انتساب دادین

در ضمن بهتره شرط where رو داخل پرانتز قرار بدین

و در آخر چرا برای آپدیت کردن از cmd.ExecuteReader استفاده کردین ، این برای خوندن اطلاعاته
باید از cmd.ExecuteNoneQuery استفاده می کردین که این متد تعداد سطرهایی رو که تغییر پیدا می کنن بر می گردونه و می تونین تو برنامه تون از عمل کردن update مطمئن بشین

aminghaderi
دوشنبه 12 مرداد 1388, 16:49 عصر
از ASKaffash (http://barnamenevis.org/forum/member.php?u=63973) و behnam-s (http://barnamenevis.org/forum/member.php?u=111805) عزیزم ممنونم.
مشکل رفع شد مشکل سر ارتباط VS وSQL بود!
که وقتی دوباره رو سیستمم نصبشون کردم که البته ویندوز رو هم عوض کردم و خدارو شکر برطرف شد.
حالا مشکل دقیقا کجا بود ،، نمی دونم ولی شاید بخاطر نصب کردن VS به صورت Custom بوده باشه که علان که به صورت Complete نصب کردم هیچ مشکلی نداره.
البته ذکر کنم که من فقط در حالت Custom زبان های برنامه نویسی رو حذف می کردم .