روشي براي دسترسي به تك تك فيلدهاي ركورد :

براي دسترسي به فيلدهاي يك ركورد اول بايد اون فيلد رو واكشي كرد. براي واكشي ركورد مورد نظر اين بار از فيلدهاي نام و نام خانوادگي استفاده مي كنم. فرض كنيم نام و نام خانوادگي رو در جدول جداگانه (به صورت دو فيلد) در نظر گرفتيم (چون بعضي از دوستان رو ديدم كه نام و نام خانوادگي رو در يك فيلد ذخيره ميكنن).
فرض كنيد جدول با اين فيلدها داريم (همون جدول Persons يا كارمندان شركت) :
Persons Fields :
PersonID
FirstName
LastName
HomePhone
MobPhone
Address
Comments
.
.
.

حالا ميايم متد قبلي رو با نام ExistRecordByName بازنويسي ميكنيم (ايندفعه خودتون انجام بدين) كه براساس فيلدهاي نام و نام خانوادگي بررسي كه آيا ركورد مورد نظر موجوده يا نه! و يك متد ديگه مينويسيم كه فيلدهاي ركورد مورد نظر رو تحويل ما بده :

privatestring GetCurrentRecordFields(string firstName, string lastName)
{
string dataValue = null;
SqlConnection connection;
SqlCommand command;
SqlDataReader data;

try
{
connection = newSqlConnection(" ");
command = newSqlCommand("SELECT * FROM Persons WHERE "FirstName=@FirstName AND LastName=@LastName", connection);
command.Parameters.AddWithValue("@FirstName", firstName);
command.Parameters.AddWithValue("@LastName", lastName);
connection.Open();
data = command.ExecuteReader();
while (data.Read())
{
dataValue += "PersonID = " + data.GetString(0);
dataValue += "FirstName = " + data.GetString(1);
dataValue += "LastName = " + data.GetString(1);
dataValue += "HomePhone = " + data.GetString(2);
dataValue += "MobPhone = " + data.GetString(3);
dataValue += "Address = " + data.GetString(4);
dataValue += "Comments = " + data.GetString(5);
}
connection.Close();
}
catch (SqlException ex)
{
dataValue = "error";
MessageBox.Show(ex.Message);
}
finally
{
data = null;
command = null;
connection = null;
}
return dataValue;
}

توضيحات : اين متد محتويات كليه فيلدهاي ركورد مورد نظر رو در قالب يك رشته (string) به ما تحويل ميده. البته ميشه به روشهاي ديگه كار كرد. مثلاً بجاي dataValue بيايم تك تك مقادير رو تو تكست باكسهايي كه روي فرم گذاشتيم قرار بديم. اين متد براساس firstName و lastName كه كاربر مشخص ميكنه ركورد مورد نظر رو پيدا ميكنه و با استفاده از يك شئ SqlDataReader كه وظيفه اش خوندن فيلدهاي يك يا چند ركورده فيلدها رو واكشي ميكنم و عمليات لازم رو انجام ميديم. حالا ميتونيم از اين دوتا متد استفاده كنيم :

privatevoid btnSearch_Click(object sender, EventArgs e)
{
if (ExistRecordByName(txtFirstName.Text, txtLastName.Text))
{
MessageBox.Show(GetCurrentRecordFields(txtFirstName.Text, txtLastName.Text));
}
else
MessageBox.Show(" ");
}


اميدوارم مفيد واقع بشه
همگي موفق و پيروز باشيد