PDA

View Full Version : سوال: گرفتن ID رکورد درج شده بعد از درج .



dezchilds
جمعه 19 خرداد 1391, 14:14 عصر
سلام دوستان من با استفاده از Details View در حالت Insert یه رکورد رو در جدول درج میکنم ، فیلد ID در دیتابیس من به صورت اتوماتیک انتخاب شده تا با هر درج جدید اضافه بشه ، میخوام ببینم چطوری بعد از درج میشه آی دی رکورد درج شده رو نمایش بدم ؟ .

persian_bigboy
جمعه 19 خرداد 1391, 18:39 عصر
این دستور به TSQL برمیگرده ، در انتهای دستور Insert که میفرستی یه ScopeIdentity; بفرست بهت رکورد ID رو برمیگردونه

dezchilds
جمعه 19 خرداد 1391, 19:09 عصر
این دستور به TSQL برمیگرده ، در انتهای دستور Insert که میفرستی یه ScopeIdentity; بفرست بهت رکورد ID رو برمیگردونه
حــاجی ما که سر درنمیاریم از این چیزا من تازه کارم :خجالت:
ضمنآ من که با دستور insert نزدم خود Details view برام اضافه میکنه و من دستوری وارد نکردم .

fakhravari
جمعه 19 خرداد 1391, 20:44 عصر
http://barnamenevis.org/showthread.php?344060-%D8%AF%D8%B1%D8%AC-%D9%85%D9%82%D8%AF%D8%A7%D8%B1-%D8%AF%D8%B1-%D9%81%DB%8C%D9%84%D8%AF-%DA%A9%D9%84%DB%8C%D8%AF-%D8%AE%D8%A7%D8%B1%D8%AC-%D8%A8%D9%87-%D8%B5%D9%88%D8%B1%D8%AA-%D9%87%D9%85%D8%B2%D9%85%D8%A7%D9%86

dezchilds
شنبه 20 خرداد 1391, 00:00 صبح
من قسمت INSERT از Details view رو کدش رو به این صورت انتخاب کردم .
INSERT INTO [works] ([title], [sendercomment]) VALUES (@title, @sendercomment) SET @ID = @@IDENTITY
و توی قسمت برنامه هم اینو زدم
protected void SqlDataSource1_Inserted(object sender, SqlDataSourceStatusEventArgs e)
{
string sID = e.Command.Parameters["@ID "].Value.ToString();
TextBox1.Text = sID;

}
ولی هیچ چیزی برگشت داده نمیشه .

sg.programmer
شنبه 20 خرداد 1391, 11:54 صبح
این دستور به TSQL برمیگرده ، در انتهای دستور Insert که میفرستی یه ScopeIdentity; بفرست بهت رکورد ID رو برمیگردونه

برای اکسس دستور چیه؟

mahdi.bagheri
شنبه 20 خرداد 1391, 14:12 عصر
من قسمت INSERT از Details view رو کدش رو به این صورت انتخاب کردم .
INSERT INTO [works] ([title], [sendercomment]) VALUES (@title, @sendercomment) SET @ID = @@IDENTITY
و توی قسمت برنامه هم اینو زدم
protected void SqlDataSource1_Inserted(object sender, SqlDataSourceStatusEventArgs e)
{
string sID = e.Command.Parameters["@ID "].Value.ToString();
TextBox1.Text = sID;

}
ولی هیچ چیزی برگشت داده نمیشه .

دوست عزیز
یک پارامتر اول تعریف کنید و Direction رو به OutPut تغییر بدید.
فقط اوایل کار رو بهتون میگم که خودتون بیشتر تحقیق کنید

var paramID = new SqlParameter();
paramID.Direction = ParameterDirection.Output();
.
.
e.Command.Parameters.Add(paramID);


موفق باشید

dezchilds
یک شنبه 21 خرداد 1391, 01:38 صبح
دوست عزیز هرکاری کردم نتونستم منظور این سایت ها رو بفهمم که چطوری از این پارامتر استفاده کنم
http://weblogs.asp.net/andrewrea/archive/2008/02/19/examples-of-using-system-data-parameterdirection-with-sql-server.aspx
لطفآ راهنمایی کنید .

darkwish
یک شنبه 21 خرداد 1391, 06:19 صبح
try
{
public SqlConnection cnn = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
public SqlCommand cmm = new SqlCommand();
public SqlCommand cmm1 = new SqlCommand();
public SqlDataReader objSqlDataReader;
string insertQuery=" Insert INTO TblName (Columns ) VALUSE (.... Valuse ....)" ;
cmm.CommandText = insertQuery;
cmm.Connection = cnn;
if (cnn.State == ConnectionState.Closed)
cnn.Open();
cmm.ExecuteNonQuery();
cmm1.Connection = cnn;
cmm1.CommandText = "SELECT @@IDentity AS 'Identity'";
SqlDataReader objSqlDataReader1 = cmm1.ExecuteReader();
if (objSqlDataReader1.Read())
idRow = Int32.Parse(objSqlDataReader1[0].ToString());
objSqlDataReader1.Close();
if (cnn.State == ConnectionState.Open)
cnn.Close();
}
catch(Exception ex)
{}

dezchilds
یک شنبه 21 خرداد 1391, 14:46 عصر
آقا ما سطحمون پایین تر از این مسائل هست لطفآ یکی درست حسابی بگه ببینم من باید چیکار کنم ! والا فکر نمیکنم انقدر سخت باشه ! میخوام آی دی رکورد جدید رو برگردونم

barnamenevisforme
یک شنبه 21 خرداد 1391, 16:11 عصر
سلام

آقا ما سطحمون پایین تر از این مسائل هست لطفآ یکی درست حسابی بگه ببینم من باید چیکار کنم !
امیدوارم این یکی دیگه موثر باشه،بعد از اجرای اونid (اینجا custommer id) رو میتونید به دست بیارید.


SELECT TOP 1 Customer.* FROM Customer ORDER BY Customer.[Customer ID] DESC;