PDA

View Full Version : طریقه اضافه کردن مقدار به تکس باکس از طریق بانک اطلاعاتی



eletcomp
جمعه 02 خرداد 1393, 14:52 عصر
با سلام بر عزیزان
میخواستم بدونم چطور می توان به داده ای که در داخل تکس باکس وجود داره یک واحد اضافه کرد از طریق دیتابیس به روش sql command
مثلا توی تکس باکس مقدار یک هست!!! زمانی که میخواهیم دوباره مقدار جدید به داخل ان تکس باکس اضافه کنیم !! خودش به صورت دینامیک یک مقدار بهش اضافه بشود و مقدار 2 بگیرد؟؟؟

یک سری کد پیدا کردم ولی به صورت ویزاردی هست!! و با table adapter کار می کند ولی به درد کار من نمیخورد!! لطفا راهنمایی کنید!!



select max(code)+1 from tbl_customer





txtcode.text=tbl_customertableadapter.getmaxcode() .tostring();





سپاس

mahdavi1456
جمعه 02 خرداد 1393, 14:56 عصر
سلام
اگه می خواید اتوماتیک انجام بشه Trigger بنویسید.

eletcomp
جمعه 02 خرداد 1393, 15:06 عصر
ممنون دوست عزیز: ولی من مبتدی هستم و با تریگر کار نکردم!!!! چطوری هست؟؟؟ مثالی یا اموزشی در این زمینه هست؟؟؟
ایا با سی شارپ نمیشه؟؟ دستورات sql command ؟؟؟ روش دیگه ای وجود ندارد؟؟

سپاس

eletcomp
جمعه 02 خرداد 1393, 15:34 عصر
دوستان کسی نیست!!!! یک بار دیگه منظورم را دقیق میگم تا شفاف سازی بشود!!!
من میخوام زمانیکه در تکس باکس اول مقداری وارد کردیم! همان تکس باکس به صورت اتوماتیک بعد از بستن فرم و اجرای دوباره یک مقدار به ان اضافه بشود و مقدار داخل تکس باکس نمایش داده بشود
از طریق دیتابیس به روش sql command
مثلا زمانیکه داخل تکس باکس مقدار ١ هست بعد از بستن و اجرا دوباره فرم مقدار ٢ جایگزین مقدار ١ بشود: و زمانیکه دکمه ثبت را زدیم مقدار 2 در دیتابیس ثبت بشود به جای 1 !!!
سپاس

ali_md110
جمعه 02 خرداد 1393, 16:06 عصر
نه عزیز من تریگر نمیخواد
یک استورد پروسیجر یا یک کوئری inline بنویسید درون یک تابع که این تابع از نوع عددی برگردونه
lمثلا

public string GetNo()
{
int DocNo = 0;
using (SqlConnection cnn = new SqlConnection(base.ConectionString))
{
try
{
using (SqlCommand cmd = new SqlCommand("SELECT MAX(id) AS Autonumber FROM MyTbl", cnn))
{

cnn.Open();
using (SqlDataReader reader = cmd.ExecuteReader())
{
if (reader.HasRows)
{
while (reader.Read())
{
if (reader["Autonumber"] == DBNull.Value)
{
DocNo = 1;
}
else
{
DocNo = Convert.ToInt32(Convert.ToInt32(reader["Autonumber"]) + 1);
}
}
}
else
{
DocNo = 1;
}

if (reader != null)
reader.Dispose();
}
}
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
finally
{

if (cnn != null)
{
cnn.Dispose();
}
}

}
return DocNo.ToString();
}
}


میتونید دستور اسکیولتون بصورت دیگه هم بنویسید

SELECT MAX(id)+1 AS Autonumber
FROM MyTbl
ولی درون دیتاریدر دیگه فیلدتون+1 نکنید
برای استفاده هرجا خواستید مقدار تکست باکستون برابر با این تابع قرار بدید مثل فرم لود یا درون ی دکمه یا رویداد TextCganed تکست باکس

eletcomp
جمعه 02 خرداد 1393, 16:26 عصر
ممنون دوست عزیز: کد اولی تان را که کلا متوجه نشدم!!!!! خیلی خفن نوشتید:لبخند:

ولی کد دومی تان یکم بهتر هست!!! الان من میتونم از کد دوم استفاده کنم دیگه؟؟؟؟ به جای کد اولی؟؟؟



برای استفاده هرجا خواستید مقدار تکست باکستون برابر با این تابع قرار بدید مثل فرم لود یا درون ی دکمه یا رویداد TextCganed تکست باکس
الان این کد select که به صورت کوئری هست را کجا باید تعریف کنم؟؟؟ مثل کوئری دستور insert باید تعریف بشود؟؟؟

سپاس

eletcomp
جمعه 02 خرداد 1393, 17:13 عصر
کسی نیست بگه این کوئری باید به چه شکلی در برنامه سی شارپ مان ایجاد شود؟؟؟
ایا این طوری که نوشتم درست هست؟؟؟



public void query{


SqlCommand cmd = new SqlCommand("SELECT MAX(id)+1 AS Autonumber FROM MyTbl",cn)
cmd.ExecuteNonQuery();


}

ali_md110
جمعه 02 خرداد 1393, 19:28 عصر
عزیز من جناب الکامپ کد کامل واستون نوشتم
همون کد اولی منظورم روال GetNo رو کامل کپی بکنید توی کدهای س شارپتون
بعدش بجای base.ConectionString کانکشکن استرینگتون بنویسید
بجای عبارت من


SELECT MAX(id)+1 AS Autonumber FROM MyTbl
عبارت خودتون تصحیح میکنم اینو بنویسید

SELECT MAX(code)+1 AS Autonumber FROM tbl_customer

حالا تابع GetNo را فراخوانی بکن

eletcomp
جمعه 02 خرداد 1393, 19:52 عصر
ممنون دوست عزیز: ولی من عاقبت یک چیز را متوجه نشدم!!!


SELECT MAX(code)+1 AS Autonumber FROM tbl_customer
این کوئری کاربرداش چی هست؟؟؟ و کجا باید نوشته بشود؟؟؟ ایا به کد اول ربطی دارد؟؟؟ کوئری باید توی sql server 2008 وارد کنم؟؟؟ یا فقط کد های اولی بس می کند؟
شما توی کد های sql command تان نوشتید SELECT MAX(id) AS Autonumber FROM MyTbl !!!!!!!!!! البته ایجا به اضافه ی 1 نگذاشتید!! ایا همین هست؟؟؟
سپاس

ali_md110
جمعه 02 خرداد 1393, 20:24 عصر
SELECT MAX(id) AS Autonumber FROM MyTbl
این کد Tsql هست نمی خواد توی sql server 2008 تعریف کنید SqlCommand cmd میاد واستون اجراش میکنه و تحویل اسکیول سرور میده


این کد T SQLمیاد بزرگترین عدد یا بزرگترین مقدار ستونی که نوعش ستون عددی هست مثل ستون Code شما که اینجا من بجاش Id گزاشتم حساب میکنه بعد توی کد سی شارپ درون یک دیتاریدر اون عدد رو میگیره و با عدد یک جمعش میکنه به شما برمیگردونه و تابع برگردونده شده رو میتونید درون تکست باکس یا هرجای دیگه نمایش بدید
من دیگه از این ساده تر نمیتونم توضیح بدم