PDA

View Full Version : پر کردن اتوماتیک فیلد های دیگر



بیتافرهی
پنج شنبه 14 شهریور 1387, 16:45 عصر
سلام
من میخوام برنامه ای بنویسم که در یکی از فرم هایم اطلاعات کامل نام ونام خانوادگی و... را از کاربر بگیرم و به او یک شمارهی ID(شناسایی) بدهم.
سپس کاربر با وارد کردن این شماره در فرم های دگر بدون اینکه نیازی به نوشتن اطلاعات دیگرش باشد ،اطلاعات نام ونامخ را که از قبل در جدول اول (فرم اول ) پر کرده بود برای او نمایش داده شود.
از لحاظ تئوری می دانم که باید SEARCH کنم ببینم آیا قبلا وارد کرده و بعد اطلاعاتش را بیارم ولی نمی دانم چه کدی بنویسم.
اگر نمونه ای شبیه این مورد سراغ دارید ،لطفا LINK بدهید.

saber4166
شنبه 16 شهریور 1387, 22:35 عصر
id دهی دادن به هر کاربر به صورت مرتب میتونید از دستور MAX خود SQL استفاده کنید که دائما بزگترین id کاربراخر رو میگیره و یک واحد اضافه میکنه و به کاربر جدید میدهد اگه بیشتر راهنمایی می خواهید بگین تا یه کد براتون قرار بدم که کار جستجو رو هم خیلی راحت میکنه

بیتافرهی
دوشنبه 18 شهریور 1387, 07:23 صبح
اگه لطف کنید توضیحتان را با مثال نشان دهید بسیار ممنون میشوم.

fbayanati
دوشنبه 18 شهریور 1387, 08:10 صبح
Sorry to write in English
As saber4166 mentioned one way is to get the latest id by MAX function
But another way is to define your user_id field as IDENTITY which will increment automatically

CREATE TABLE [myUser](
[UserID] [int] IDENTITY(1,1) NOT NULL,
[Title] [nvarchar](8) NULL,
[FirstName] [nvarchar](30) NOT NULL,
[LastName] [nvarchar](30) NOT NULL )

You can start from any number for your UserID field

To get FirstName and LastName you can use a SELECT as quesry

select FirstName, LastName from myUser where CustomerID = @myUserID

To cal it from C sharp

string mySqlCnStr = @"Data Source=.\SQLEXPRESS;Initial Catalog=myDB;Integrated Security=True";
using (SqlConnection mySqlCn = new SqlConnection(mySqlCnStr))
{
int myUserId = 10; // it's just a sample, you need to assign real user ID to it
string mySqlCmdStr = String.Format("select FirstName, LastName from myUser where CustomerID = {0}", myUserID);
SqlCommand sqlCmd = new SqlCommand(mySqlCmdStr, mySqlCn);
mySqlCn.Open();
SqlDataReader myDR = sqlCmd.ExecuteReader();
while( myDR.Read() )
MessageBox.Show( myDR.GetValue(0) + " " + myDR.GetValue(1) );
// Do anything which you like ...
}
// continue your code ...
}


Hope that helps

alinaghiha
دوشنبه 18 شهریور 1387, 10:10 صبح
من پر كردن فرم رو با اين تابع اجام مي دم


public void fill_accdata(TextBox txt_code, TextBox txt_name, TextBox txt_id, TextBox txt_tel, TextBox txt_mobile, TextBox txt_address,TextBox txt_acc_cost)
{
try
{
string sqlStatement = "select * from account where acc_code =" + txt_code.Text + "";
cm.CommandText = sqlStatement;
cm.Connection = con;
if (con.State == ConnectionState.Closed)
con.Open();
SqlDataReader sdr = null;
sdr = cm.ExecuteReader();
sdr.Read();
if (sdr.HasRows)
{

txt_name.Text = Convert.ToString(sdr["acc_name"]);
txt_id.Text = Convert.ToString(sdr["acc_id"]);
txt_tel.Text = Convert.ToString(sdr["acc_tel"]);
txt_mobile.Text = Convert.ToString(sdr["acc_mobile"]);
txt_address.Text = Convert.ToString(sdr["acc_address"]);
txt_acc_cost.Text = Convert.ToString(sdr["acc_cost"]);

}
else
{
MessageBox.Show("حسابي با كد وارد شده وجود ندارد لطفا در ورود كد عضو دقت كنيد ", "خطاي ورود اطلاعات", MessageBoxButtons.OK);
}
sdr.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}