PDA

View Full Version : تکراری نبودن داده در LINQ مقایسه دو آیتم



vapa_71
جمعه 13 اردیبهشت 1392, 13:45 عصر
سلامن دوستان عزیزم من این کد رو دارم که داخل یکی از تایپیک ها مشاهده کردم و جواب داد اما مشکل اینجاست که این کد یک فیلد رو بررسی میکنه من میخوام 2 فیلد بررسی بشه مثال:

گروه آزمایش آزمایش
-------------------------------------

گروه1 ----- آزمایشa
گروه1 ----- آزمایشb
گروه2 ----- آزمایش a

یعنی شرط به این شکل بشه که گروه آزمایش و آزمایش یکسان وارد نشه

اینم کدی که من دارم


var db = new factorlinqDataContext();
bool isRegistered = db.Kalas.Any(i => i.kagr == comboBox1.Text);
if (!isRegistered)
{
//code sabt
}

_behnam_
جمعه 13 اردیبهشت 1392, 13:54 عصر
سوالتون واضح نیست !

khayyams.votary
جمعه 13 اردیبهشت 1392, 13:55 عصر
شما می خوای که این تکراری نبودن از طرف کووری حل بشه؟
یعنی که وقتی جواب برمیگرده هیچ رکورد هم شکلی نباشه یا اینکه فقط می خوای ی گزینه به شرط کووری اضافه بشه؟

vapa_71
جمعه 13 اردیبهشت 1392, 13:58 عصر
این کد که دادم بررسی میکنه اگه مثلا یه اسمی قبلا داخل بانک ذخیره شده پیغام میده که این اسم قبلا ذخیره شده حالا من میخوام مثلا هم اسم و هم فامیلی رو چک کنه اگه اسم و فامیلی یکسان وجود داشت این پیغام رو بده ولی اگه اسم مشابه بود ولی فامیلی مشابه نبود ذخیره کنه

مهدی هادیان2
جمعه 13 اردیبهشت 1392, 13:59 عصر
بسم الله الرحمن الرحیم
با سلام
به جای bool isRegistered = db.Kalas.Any(i => i.kagr == comboBox1.Text);
کد زیر رو امتحان کنید:
bool isRegistered = db.Kalas.Any(i => i.kagr == comboBox1.Text && i.PhoneNumber == this.txtPhoneNumber.Text);

vapa_71
جمعه 13 اردیبهشت 1392, 14:02 عصر
بسم الله الرحمن الرحیم
با سلام
به جای bool isRegistered = db.Kalas.Any(i => i.kagr == comboBox1.Text);
کد زیر رو امتحان کنید:
bool isRegistered = db.Kalas.Any(i => i.kagr == comboBox1.Text && i.PhoneNumber == this.txtPhoneNumber.Text);

دستتون درد نکنه عالی بود

مهدی هادیان2
جمعه 13 اردیبهشت 1392, 15:01 عصر
خواهش میکنم.
موفق باشید.

مهرداد صفا
جمعه 13 اردیبهشت 1392, 16:43 عصر
با سلام.
به نمونه کد زیر هم دقت کنید:

//بسم الله الرحمن الرحیم
//اللهم صل علی محمد و آله

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApplication1

{

public struct Research:IEquatable<Research>
{
public int GroupNumber;
public int TestNumber;
public Research(int GroupNumber, int TestNumber)
{
this.GroupNumber = GroupNumber;
this.TestNumber = TestNumber;
}

bool IEquatable<Research>.Equals(Research other)
{
return ((this.GroupNumber == other.GroupNumber) & (this.TestNumber == other.TestNumber));
}

}

public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
dataGridView1.Size = this.Size;
dataGridView1.Location = Point.Empty;
Research[] researches = new Research[8] {
new Research(1,1),new Research(1,2),new Research(1,3),
new Research(1,3),new Research(1,2),new Research(2,1),
new Research(2,3),new Research(2,2)};
dataGridView1.DataSource = (from reSearch in researches where reSearch.GroupNumber == 1 select new { Group = reSearch.GroupNumber, Test = reSearch.TestNumber }).Distinct().ToArray();
}
}
}