PDA

View Full Version : چگونگی نشان دادن id identity



*Ashrafi*
چهارشنبه 07 تیر 1391, 20:12 عصر
سلام
من یک جدول در sql دارم که کلیداصلیش راidentity تعریف کردم و می خوام که زمان اضافه کردن داده در سی شارپ بالاترین عدداین فیلدرا در تکست باکس نشان بده این کدم در فرم لودامتحان کردم جواب نگرفتم

long IdBook;
string selectcmd = "select max(IdBook) as id from TblBook";
SqlDataAdapter adapter = newSqlDataAdapter(selectcmd, sc);
DataSet dataset = newDataSet();
adapter.Fill(dataset, "tblBook");
txtid.DataBindings.Add(newBinding("Text", dataset, "tblBook.id"));
IdBook = long.Parse(txtid.Text);
IdBook++;
txtid.Text = IdBook.ToString();

Farshid007
چهارشنبه 07 تیر 1391, 21:48 عصر
این کد رو ساختم
فرض اینه که اسم اون ستون IdBook و اسم اون جدول TblBook باشه و اسم متغیر no هستش

البته تعریف objSqlCommand و تنظیم کردنش با خودت
int no()
{
objSQLcommand.CommandText = "Select IdBook From TblBook";
SqlDataReader DR = objSQLcommand.ExecuteReader();
DR.Read();
bool blnHasRows = DR.HasRows;
if (DR.IsClosed == false) DR.Close();
if (!blnHasRows) return 1;
//Get No from DataBase
objSQLcommand.CommandText = "Select max (IdBook) From TblBook";
return (int)objSQLcommand.ExecuteScalar() ;
}

Farshid007
چهارشنبه 07 تیر 1391, 21:50 عصر
البته این چک میکنه که اگه هیچ ردیفی توش نباشه 1 رو برگردونه

Mahmoud.Afrad
چهارشنبه 07 تیر 1391, 22:01 عصر
بعلاوه1 رو میتونید در دستور سلکت انجام بدید:
SqlCommand selectcmd = new SqlCommand("select (max(IdBook)+1) as id from TblBook", connection);
connection.Open();
txtid.Text = selectcmd.ExecuteScalar().ToString();
connection.Close();
selectcmd.Dispose();

*Ashrafi*
پنج شنبه 08 تیر 1391, 13:41 عصر
شرمنده ولی این کاری که گفتید روی پروژه من جواب نمیده من یک جدول خالی دارم که میخوام یک کتاب بهش اضافه کنم میخوام وقتی فرم باز میشه idbook بیاد توی تکست باکس اما باکدهای خودم این خطا را میده
input string was not in a correct format
لطفا کمکم کنید!:اشتباه:

Farshid007
پنج شنبه 08 تیر 1391, 20:39 عصر
شاید یه نوع فیلدی داری که متن با نوع فیلد جور در نمی اد
مثلا ما یه فیلد داریم از نوع int اما می خواهیم توش عبارت Farshid رو اینسرت کنیم خوب جور در نمی اد که!
همه چیه رو چک کن
این خطای اساسی نیست!