PDA

View Full Version : سوال: نام ونام خانوادگی یکسان را قبول نکند



ندااحمدی
شنبه 21 اسفند 1389, 11:27 صبح
میشه بگید دقیقا چه کدی با C# بنویسم ؟دارم ا ز دو تا textbox استفاده میکنم

ali.rezaei7
شنبه 21 اسفند 1389, 11:32 صبح
if(textboxfirstname.text!=textboxlastname.text)
مشكلتون همين بود؟!

ehsanara
شنبه 21 اسفند 1389, 11:37 صبح
اگه منظورت اینه که نام و نام خانوادگی مثل هم نباشه

if(Name.Text != Family.Text)


اگه تو دیتا بیس منظورته میتونی بزنی

"WHERE Name != @Name AND Family != @Family"


سوالت دقیقا مشخص نیست

ندااحمدی
شنبه 21 اسفند 1389, 11:49 صبح
در برنا مه ام میخوام اگر دو تا نام ونام خانوادگی برای دو فرد یکسان بود پیغام دهد یعنی نشود دو نفر را با نام خانوادگی یکسان قبول کرد؟چه کدی بنویسم

mehdi.mousavi
شنبه 21 اسفند 1389, 12:03 عصر
در برنا مه ام میخوام اگر دو تا نام ونام خانوادگی برای دو فرد یکسان بود پیغام دهد یعنی نشود دو نفر را با نام خانوادگی یکسان قبول کرد؟چه کدی بنویسم

سلام.
برای اینکار، ابتدا یک Stored Procedure در بانک خودتون ایجاد کنید تا عمل Insert شدن رو انجام بده. سپس در این SP، بدین شکل عمل کنید:

IF NOT EXISTS(SELECT Id FROM MyTable WHERE FName = @FName AND LName = @LName) THEN BEGIN
INSERT INTO ...
END

در واقع اینجا نگاه می کنید اگر نام و نام خانوادگی از قبل در بانک وجود نداره، اونوقت رکورد جدید رو Insert می کنید.

موفق باشید.

ندااحمدی
شنبه 21 اسفند 1389, 13:31 عصر
میشه بدون اینکه در دیتابیس چیزی اضافه کرد فقط در source کدی نوشت؟
اگر میشه کدش رو برام بنویسید

ehsanara
شنبه 21 اسفند 1389, 13:45 عصر
سعی کنید حتی الامکان توی اربتاطتتون از SP استفاده کنید
اگه نمیخواید میتونید شرط WHERE رو که بالا نوشتیم رو تو شرط Insert برنامه بزارید

shadi khanum
شنبه 21 اسفند 1389, 15:52 عصر
میتونی موقع Insert کردن کاربر قبلش اینو بنویسی:
cmd.CommandText = "SELECT COUNT(*) FROM tbl_Person WHERE pname'" + Txtname.text + "' And pfamil='" + TxtFamil.text + "'";
Int32 count = (Int32)cmd.ExecuteScalar();
if (count == 0)
{Insert Person...
}

ندااحمدی
شنبه 21 اسفند 1389, 20:36 عصر
چرا این شرط میزارم جواب نمیگیرم
if(TXTlastCustomerName.Text!=TXTlastCustomerName.T ext & TXTname.Text!=TXTname.Text)
باوجود اینکه من نمیخوام در دیتابیس بنویسم الان مشکل این کد من چیه؟

ehsanara
شنبه 21 اسفند 1389, 23:51 عصر
آخه داری دوتا مقدار یکسان رو با هم مقایسه می کنی
مثل این میمونه من چک کنم که 3 =! 3 && 2 =! 2

Salar Ashgi
یک شنبه 22 اسفند 1389, 00:40 صبح
اگر با دیتابیس کاری ندارید ، دستور زیر را هم امتحان کنید :

if(textBox1.text.Equals(textBox2.text))
//do something


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

موفق باشید ./

ندااحمدی
یک شنبه 22 اسفند 1389, 08:46 صبح
میشه راهنماییم کنید به جای این کد چی کدی باید به جاش بنویسم

ندااحمدی
یک شنبه 22 اسفند 1389, 08:51 صبح
آخه من نمیخوام دو تا textbox را که مثلا نام ونام خانوادگی هست با هم مقایسه کنم من میخوام
دو تا نام خانوادگی یا دو تا اسم که در یک textbox هستشو با هم مقایسه کنم
ممنون

morteza271
یک شنبه 22 اسفند 1389, 09:38 صبح
یعنی چی در یک TextBox؟
لطف کنید بیشتر توضیح بدین و یا کدتون رو بذارین تا بتونیم کمکتون کنیم.

m.soleimani
یک شنبه 22 اسفند 1389, 10:07 صبح
یه نمونه ساده برات درست کردم اگر اونی که خواستی رو ازش متوجه نشدی بگو موفق باشی./

noname1st
دوشنبه 23 اسفند 1389, 08:52 صبح
آخه من نمیخوام دو تا textbox را که مثلا نام ونام خانوادگی هست با هم مقایسه کنم من میخوام
دو تا نام خانوادگی یا دو تا اسم که در یک textbox هستشو با هم مقایسه کنم
ممنون
سلام من نفهمیدم
شما دارید اطلاعات در بانک ذخیره می کنید یا نه همین طوری دو تا نام و دو تا نام خانوادگی با هم برابر نباشد.
دومی که نیاز به 4 تا Text box داره و مقایسه شو دوستان گفتن
ولی اگه در بانک ذخیره می کنی باید اول از بانک مقصد Select کنی اطلاعاتی رو که Where)( برابر دو تا نام و نام خانوادگی باشه و بعد اگه Dataset که پر کردی Count صفر باشد یعنی تکراری نیست در غیر این صورت تکراری است

نکته:برای حرف های ک و ی که در عربی و فارسی به صورت دو نقطه و معمولی وجود دارد
در ویندوز ها و کدینگ های مختلف به صورت مختلف کدینگ رد می شود و این باعث می شود که در جستجو پیدا نشود پس قبل از ذخیره بررسی کنید که اگر فرمت های حرف ها متفاوت است با دستور Replace در String آن را با کد پیج استاندارد خود جایگزین و بعد ذخیره نمایید

ندااحمدی
پنج شنبه 11 فروردین 1390, 15:14 عصر
باتوجه به اینکه اطلاعات را دارم در دیتابیس ذخیره میکنم در دیتابیس دقیقا چه کدی باید بنویسم لطفا راهنمایی کنید

mehdi.mousavi
پنج شنبه 11 فروردین 1390, 16:06 عصر
باتوجه به اینکه اطلاعات را دارم در دیتابیس ذخیره میکنم در دیتابیس دقیقا چه کدی باید بنویسم لطفا راهنمایی کنید

سلام.
برنامه نویسی Copy & Paste کردن کد دیگران نیست، بلکه گرفتن مفاهیم و به چالش کشیدن اونهاست. این هجدهمین پست در این تاپیک هستش و شما هنوز دارید برای حل مساله ای که پاسخ به اون رو در اولین پست خودم در این تاپیک دادم، بعد چند هفته، تلاش می کنید. این باید برای شما یک هشدار باشه که مسیر رو دارید اشتباه طی می کنید... :ناراحت:

موفق باشید.

ندااحمدی
پنج شنبه 11 فروردین 1390, 17:07 عصر
چه کدی باید در دستورات دیتابیس بنویسم که میخواهم نشود دوتا نام خانوادگی یکسان ذخیره کرد
نشود دوتا نام خانوادگی در textbox وارد کرد
دستور add کردن دیتابیس ام این هست
چطور باید تغییر دهم؟
public bool ADD(Moshtark Entity)
{
db.Moshtarks.InsertOnSubmit(Entity);
db.SubmitChanges();
return true;
}

Directx
پنج شنبه 11 فروردین 1390, 17:17 عصر
خوب باید جدولی که تو دیتابیسه رو طوری طراحی کنید که فیلد نام خانوادگی primiry key باشه بعدش وقتی که کاربر نام خانوادگی مشابه رو وارد کرد با یه پیغام مناسب می تونید به کاربر اعلام کنید که این نام خانوادگی در جدول وجود دارد

Rejnev
پنج شنبه 11 فروردین 1390, 17:43 عصر
primary key بهترین کاره.
ولی اگه میخواید سمت برنامه این محدودیت رو اعمال کنید، باید قبل از درج و ویرایش، چک کنید که نام خانوادگی تکراری نباشه.
در ضمن چک کردن قبل از عملیات بهتر از اینه که exception ایجاد کنید.
برای edit هم باید کد بنویسید.

public bool ADD(Moshtark Entity)
{
if(db.Moshtaraks.Count(a=>a.Family.Equals(Entity.Family))>0)
return false;
db.Moshtarks.InsertOnSubmit(Entity);
db.SubmitChanges();
return true;
}

Directx
پنج شنبه 11 فروردین 1390, 17:53 عصر
بله این exeption ه غلط بود الان درستش می کنم

Rejnev
پنج شنبه 11 فروردین 1390, 18:03 عصر
پ ن:
ببخشید که پست 21 رو زدم.
حواسم نبود که تاپیک به صفحه سوم رسیده و دوستان هم قبلا جوابهای خوبی دادن. (یعنی اصلا ندیدم! نمیدونم حواسم کجا بود)
خانم احمدی هم لطفا دقیقا مشکلشون رو بگن که وقت خودشون و سایر دوستان گرفته نشه.
تقریبا تمامی دوستان جوابهای درست و کار راه اندازی دادن. اینکه هنوز برای شما جای سوال باقی مونده، جای تعجب داره. لطفا سطح شناختتون از سیستمهای مدیریت دیتابیس و زبانی که با اون برنامه می نویسید رو هم بگید، اینطوری پاسخ دهنده هم میدونه در چه حدی و با چه سطحی باید به سوال جواب بده.
و در آخر هم لطفا طوری سوال بپرسید که انگار خودتون میخواید جواب بدید (سوال گنگ نباشه). برای اینکار قبل از عجله و ارسال سوال، چند بار اون رو بخونید
با تشکر

ندااحمدی
سه شنبه 16 فروردین 1390, 21:53 عصر
سلام.
برای اینکار، ابتدا یک Stored Procedure در بانک خودتون ایجاد کنید تا عمل Insert شدن رو انجام بده. سپس در این SP، بدین شکل عمل کنید:

IF NOT EXISTS(SELECT Id FROM MyTable WHERE FName = @FName AND LName = @LName) THEN BEGIN
INSERT INTO ...
END

در واقع اینجا نگاه می کنید اگر نام و نام خانوادگی از قبل در بانک وجود نداره، اونوقت رکورد جدید رو Insert می کنید.

موفق باشید.

بنده برنامه ام با linq to sql است حال چطور میتوانم در کد زیر دستور شما را اضافه کنم؟
public bool ADD(Moshtark Entity)
{



db.Moshtarks.InsertOnSubmit(Entity);
db.Moshtarks.InsertOnSubmit(Entity);
db.SubmitChanges();
return true;
کد شما به صورت linq چطور نوشته میشود؟
ممنونم

}

gerdioz
سه شنبه 16 فروردین 1390, 22:06 عصر
بچه ها همه کمو بیش و بعضی ها دقیقا مشکل شما رو حل کردن من فکر می کنم شما خودتون باید بیشتر دقت کنید بهترین را اینهه که دوستان گفتند
یک کوئری واسه بانک بنویس که \count رو برگردونه اگه نام و نام خانوادگی برابر با اون مقادیری باشه که شما دارید اگه count صفر بود مقدار در بانک نیست و همچین نام و نام خانوادگی قبلا ثبت نشده اگر یک بود یعنی با این نام و نام خانوادگی رکوردی ثبت شده /////فکر نکنم نکته مبهمی داشته باشه

ندااحمدی
سه شنبه 16 فروردین 1390, 23:26 عصر
بچه ها همه کمو بیش و بعضی ها دقیقا مشکل شما رو حل کردن من فکر می کنم شما خودتون باید بیشتر دقت کنید بهترین را اینهه که دوستان گفتند
یک کوئری واسه بانک بنویس که \count رو برگردونه اگه نام و نام خانوادگی برابر با اون مقادیری باشه که شما دارید اگه count صفر بود مقدار در بانک نیست و همچین نام و نام خانوادگی قبلا ثبت نشده اگر یک بود یعنی با این نام و نام خانوادگی رکوردی ثبت شده /////فکر نکنم نکته مبهمی داشته باشه

منظورتون همینه؟ولی من با این کد جواب نگرفتم
public bool ADD(Moshtark Entity)
{


if(db.Moshtarks.Count(a=>a.CustomerLastName.Equals(Entity.CustomerLastName) )>0)
return false;
db.Moshtarks.InsertOnSubmit(Entity);
db.SubmitChanges();
return true;
}

ma.rad
سه شنبه 16 فروردین 1390, 23:42 عصر
if(dt.rows.count>0)
{
پیام
}