ورود

View Full Version : سوال: اشکال Sql در ASP



MrsiLeNt
یک شنبه 21 اسفند 1390, 19:42 عصر
سلام دوستان.
صفحه مربوط به ثبت نام کاربر رو در نظر بگیرید
خیلی ابتدایی میگم. مثلا این فرم 3 تا فیلد داره شامل نام کاربری و رمز عبور و ایمیل.
حالا تو Sql هم میایم این 3 تا فیلد رو مسازیم و یک فیلد دیگه به اسم ID که primary key هست میسازیم
خوب دوستان کل سوال من سر همین فیلد ID هست. وقتی خاصیت Idenity رو فعال میکنیم و idenity increment رو رو 1 میزاریم 1 دونه 1 دونه اضافه میکنه . حالا سوال من این هست.
من اومدم چهار پنج تا یوزر ساختم و با یه button ثبت کردمشون. خوب من که 4 تا مثلا یوزر ساختم پس 5 امی رو که میسازم باید فیلد ID بشه 5 . تا اینجا درست.. حالا میام تمام رکورد هارو پاک میکنم. دوباره که میرم یوزر میسازم این فیلد ID از ادامه اون قبلی ها شماره ثبت میکنه . مثلا مینویسه 6 .
حالا چی کار کنم که وقتی همه رکوردها رو پاک کردم این فیلد هم reset بشه در واقع از 1 بشه.

hamid_shrk
یک شنبه 21 اسفند 1390, 20:19 عصر
دوست عزیز شما میتونی با این دستور توی استور پروسیجرت اصطلاحا جدول رو reseed کنی :

DBCC CHECKIDENT (نام جدول, RESEED, 0)

حالا ببین کجای دستور حذفت بکارت میاد دیگه!

MrsiLeNt
یک شنبه 21 اسفند 1390, 20:47 عصر
ممنون دوست عزیز ولی من command هارو تو استور پروسیجر ندادم تا حالا همین جوری تو خود اون sql command که حالا هر جا نیاز شد میدم. اگه زحمتی نیست براتون یک مثال بزنید که عالیه

hamid_shrk
یک شنبه 21 اسفند 1390, 20:50 عصر
من همیشه بعد از آپلود سایتم جدول ها رو با یک کوئری reseed میکنم.
راستش تاحالا با sql command این کارو نکردم.

MrsiLeNt
یک شنبه 21 اسفند 1390, 20:55 عصر
ممنون از اینکه جواب میدید دوست عزیز.
اگه میشه با همین روش خودتون یه مثال بزنید. فرض بر اینکه یه جدول 3 فیلده داریم که میخوایم فیلد ID بعد از Delete کردن رکورد ها Reseed شه. اگه یه مثال بزنین خیلی عالی میشه :لبخند:

fakhravari
یک شنبه 21 اسفند 1390, 22:03 عصر
SqlConnection con = new SqlConnection(DAL.ConnectionString);
SqlCommand cmd = new SqlCommand("DBCC CHECKIDENT (Table1, RESEED, 0)", con);
cmd.CommandType = CommandType.Text;
con.Open();
cmd.ExecuteNonQuery();
con.Close();

neda555
یک شنبه 21 اسفند 1390, 23:25 عصر
SqlConnection con = new SqlConnection(DAL.ConnectionString);
SqlCommand cmd = new SqlCommand("DBCC CHECKIDENT (Table1, RESEED, 0)", con);
cmd.CommandType = CommandType.Text;
con.Open();
cmd.ExecuteNonQuery();
con.Close();

یعنی بعد از اینکه con زدیم یه بار sqlcommand را واسه delet بنویسیم و بعد بار دیگه برای reseed ?یا هر دو دستور را میشه داخل یک sqlcommand نوشت؟

hamid_shrk
یک شنبه 21 اسفند 1390, 23:29 عصر
یعنی بعد از اینکه con زدیم یه بار sqlcommand را واسه delet بنویسیم و بعد بار دیگه برای reseed ?یا هر دو دستور را میشه داخل یک sqlcommand نوشت؟
خیر شما میتونید هر دو دستور رو تو یک command بنویسید.

neda555
دوشنبه 22 اسفند 1390, 11:17 صبح
مثلا اگر این دستور حذف باشه اون کد را کجا بنویسم و چه طور؟
SqlCommand cm = new SqlCommand("delete from Tnews where nid=" + Request.QueryString["id"].ToString(), cn);

maryam_vb
دوشنبه 22 اسفند 1390, 11:29 صبح
مثلا اگر این دستور حذف باشه اون کد را کجا بنویسم و چه طور؟





SqlCommand cm = new SqlCommand("delete from Tnews where nid=" + Request.QueryString["id"].ToString()+" DBCC CHECKIDENT ( Tnews, RESEED, value)", cn);