PDA

View Full Version : سوال: ریختن رکورد های یک جدول داخل یک لیست پیوندی



mohsen.nsb44
جمعه 01 اردیبهشت 1391, 16:02 عصر
سلام من میخوام رکوردی که کاربر ثبت میکنه اگه تکراری باشه پیغامی نمایش داده بشه که این رکورد قبلا ثبت شده
خب من اومدم از کد زیر استفاده کردم


con = new SqlConnection();
con.ConnectionString = System.Configuration.ConfigurationManager.Connecti onStrings["connectionstring"].ConnectionString;
cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandText = "select adres from info";

DataTable dt = new DataTable();
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = cmd;
da.Fill(dt);

foreach (ListItem l in dt.Rows)
{
if (txtAdres.Text != l.ToString())
{
lblM.Text = "ok";
lblM.Visible = true;
}
else
{
lblM.Text = "ok";
lblM.Visible = false;
}
}

مشکلم در foreach (ListItem l in dt.Rows) هستش میشه راهنمایی بکنین که به چه صورتی باید تغییرش بدم؟

clover
جمعه 01 اردیبهشت 1391, 16:25 عصر
دوست عزیز
روش صحیح پیاده سازی به این شکل هست که شما در بانک و به هنگام افزودن رکورد این بررسی رو انجام بدید و در نهایت با یک پارامتر خروجی و یا مقدار برگشتی از این مورد مطلع بشید و به کاربر اطلاع بدید.

در هر صورت فکر می کنم کد مورد نظر شما باید به این شکل باشه:
con = new SqlConnection();
con.ConnectionString = System.Configuration.ConfigurationManager.Connecti onStrings["connectionstring"].ConnectionString;
cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandText = "select adres from info";

DataTable dt = new DataTable();
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = cmd;
da.Fill(dt);

lblM.Text = "ok";
lblM.Visible = false;

foreach (DataRow row in dt.Rows)
{
if (txtAdres.Text == row[0].ToString())
{
lblM.Visible = true;
break;
}
}

موفق باشید

mohsen.nsb44
جمعه 01 اردیبهشت 1391, 17:37 عصر
دوست عزیز ممنون از اصلاح کد. حالا بدرستی جواب میده
فقط یه مشکلی دارم من بعد این کد دستور درج در بانکم دارم حالا چه شرطی بزارم که اگه تکرار انجام شد دیگه دستور بعدی که دستور ثبت هستش اجرا نشه چون ادرس رو کلید اصلی گرفتم اگه دوبار ثبت بشه ارور میده

mohsen.nsb44
جمعه 01 اردیبهشت 1391, 17:50 عصر
اگه داخل حلقه foreach بعد if یه else بزارم درست میشه اما باعث کندی نمیشود؟