-
جدا کننده اعداد و جمع آنها
با سلام خدمت دوستان من چهار عدد تکست باکس دارم که با کد کاری کردم 3 رقم 3 رقم از هم جدا بشن تا اینجا درست کار میکنه
ولی وقتی میخوام جمع ببندم خطا میگیره اگه امکان داره راهنمایی کنید چطور مشکل رو حل کنم کد برنامه بصورت زیر
private void textBoxX3_Enter(object sender, EventArgs e) {
int result = int.Parse(textBoxX1.Text) + int.Parse(textBoxX2.Text) - int.Parse(textBoxX4.Text);
textBoxX3.Text = result.ToString();
}
private void textBoxX1_TextChanged(object sender, EventArgs e)
{
textBoxX1.Text = Convert.ToInt32(textBoxX1.Text.Replace(",", "")).ToString("n0");
}
private void textBoxX2_TextChanged(object sender, EventArgs e)
{
textBoxX2.Text = Convert.ToInt32(textBoxX2.Text.Replace(",", "")).ToString("n0");
}
private void textBoxX4_TextChanged(object sender, EventArgs e)
{
textBoxX4.Text = Convert.ToInt32(textBoxX4.Text.Replace(",", "")).ToString("n0");
}
private void textBoxX3_TextChanged(object sender, EventArgs e)
{
textBoxX3.Text = Convert.ToInt32(textBoxX3.Text.Replace(",", "")).ToString("n0");
}
-
نقل قول: جدا کننده اعداد و جمع آنها
ممکن است یکی از تکست باکس ها مقدار دهی نشده باشند یا از کاراکترهای غیر عددی استفاده شده باشد در اینصورت خطا رخ میدهد برای رفع این مشکل میتوانید از کد زیر استفاده کنید
private void textBoxX3_Enter(object sender, EventArgs e){
int num1, num2, num3, result;
if (int.TryParse(textBoxX1.Text.Replace(",", ""), out num1) &&
int.TryParse(textBoxX2.Text.Replace(",", ""), out num2) &&
int.TryParse(textBoxX4.Text.Replace(",", ""), out num3))
{
result = num1 + num2 - num3;
textBoxX3.Text = result.ToString("n0");
}
else
{
textBoxX3.Text = "Invalid Input";
}
}
در این کد، قبل از تبدیل مقادیر ورودی به عدد، با استفاده از try Parse بررسی میشود که آیا ورودی حاوی کاراکتر غیرعددی است یا خیر. همچنین، در صورتی که تبدیل موفقیت آمیز نباشد، پیام خطا به کاربر نشان داده میشود
-
نقل قول: جدا کننده اعداد و جمع آنها
ممنون از پاسختون ولی الان این کد فقط textbox اخر رو که حاصل رو نشون میده سه رقم سه رقم میکنه در تکستهای ورودی جدا کننده اعمال نمیکنه
-
نقل قول: جدا کننده اعداد و جمع آنها
مشکل با این کد برای تکستهای ورودی حل شد ممنون.
private void textBoxX1_TextChanged(object sender, EventArgs e) {
if (textBoxX1 .Text != string .Empty )
{
textBoxX1.Text = Int64.Parse(textBoxX1.Text.Replace(",", "")).ToString("#,0");
textBoxX1.Select(textBoxX1.TextLength, 0);
}
-
نقل قول: جدا کننده اعداد و جمع آنها
private void textBoxX3_Enter(object sender, EventArgs e){
int num1, num2, num3, num4, result;
if (int.TryParse(textBoxX1.Text.Replace(",", ""), out num1) &&
int.TryParse(textBoxX2.Text.Replace(",", ""), out num2) &&
int.TryParse(textBoxX3.Text.Replace(",", ""), out num3) &&
int.TryParse(textBoxX4.Text.Replace(",", ""), out num4))
{
result = num1 + num2 - num3 + num4;
textBoxX3.Text = result.ToString("n0");
}
else
{
textBoxX3.Text = "Invalid Input";
}
}
-
نقل قول: جدا کننده اعداد و جمع آنها
فقط مشکل دیگه اینه که موقع ذخیره در دیتابیس که از نوع int تعریف شده خطا میده
واسه اینم راهی هست؟
-
نقل قول: جدا کننده اعداد و جمع آنها
نقل قول:
نوشته شده توسط
mostafa580
فقط مشکل دیگه اینه که موقع ذخیره در دیتابیس که از نوع int تعریف شده خطا میده
واسه اینم راهی هست؟
برای رفع مشکل، میتوانید رشته را بدون کاما ("1,234" به "1234") تبدیل کنید و سپس آن را به عنوان مقدار عددی در دیتابیس ذخیره کنید.
int num1, num2, num3, num4, result;
if (int.TryParse(textBoxX1.Text.Replace(",", ""), out num1) &&
int.TryParse(textBoxX2.Text.Replace(",", ""), out num2) &&
int.TryParse(textBoxX3.Text.Replace(",", ""), out num3) &&
int.TryParse(textBoxX4.Text.Replace(",", ""), out num4))
{
result = num1 + num2 - num3 + num4;
textBoxX3.Text = result.ToString("n0");
int valueToSave = result;
// ذخیره valueToSave در دیتابیس
}
else
{
textBoxX3.Text = "Invalid Input";
}
-
نقل قول: جدا کننده اعداد و جمع آنها
کد بالا حاصلش کلا Invalid Input هست و باز هم موقع ذخیره خطا میده
-
نقل قول: جدا کننده اعداد و جمع آنها
یه سوال اگه داخل sql بجای int داده رو از نوع nvarchar(50) تعریف کنیم که دیگه دردسر نداشته باشیم مشکل خاصی پیش میاد؟
-
نقل قول: جدا کننده اعداد و جمع آنها
در جدول اسکیو ال، داده نوع int برای ذخیرهسازی اعداد صحیح با حداکثر بیت ۳۲ بیت (برای نسخه ۳۲ بیتی اسکیو ال) و حداکثر بیت ۶۴ بیت (برای نسخه ۶۴ بیتی اسکیو ال) استفاده میشود. این نوع برای ذخیرهسازی اعداد صحیح، شمارش، اندازهگیری و شمارهگذاری مورد استفاده قرار میگیرد.
اگر یک ستون با داده نوع nvarchar(50) در جدول ایجاد کنیم، این به این معناست که در این ستون، میتوانیم رشتههایی با حداکثر ۵۰ کاراکتر (یا ۱۰۰ بایت) را ذخیره کنیم . و مشکلی با ذخیره داده های شما ندارد اگر تعداد کاراکتر رعایت شود.
-
نقل قول: جدا کننده اعداد و جمع آنها
سپاس فراوان از پاسخگویی و راهنماییتون .
-
نقل قول: جدا کننده اعداد و جمع آنها
فقط به عنوان اخرین سوال میخوام ازتون راهنمایی بگیرم
برنامه ای که من نوشتم در هر رکورد یه عکس هم بصورت باینری در دیتابیس ذخیره میکنه که طبیعتا حجم دیتابیس بالا میره
خواستم بپرسم این بالا رفتن حجم دیتابیس از لحاظ فنی مشکل ایجاد نمیکنه؟
-
نقل قول: جدا کننده اعداد و جمع آنها
نقل قول:
نوشته شده توسط
mostafa580
فقط به عنوان اخرین سوال میخوام ازتون راهنمایی بگیرم
برنامه ای که من نوشتم در هر رکورد یه عکس هم بصورت باینری در دیتابیس ذخیره میکنه که طبیعتا حجم دیتابیس بالا میره
خواستم بپرسم این بالا رفتن حجم دیتابیس از لحاظ فنی مشکل ایجاد نمیکنه؟
ذخیره عکس به صورت باینری در دیتابیس، میتواند حجم دیتابیس را بالا ببرد و در صورتی که این عکسها بسیار بزرگ باشند، ممکن است به مشکلاتی از جمله کاهش سرعت عملکرد دیتابیس، مشکلات در انتقال دادهها، نیاز به فضای ذخیره بیشتر و... منجر شود.
بهترین روش برای ذخیره عکسها در دیتابیس، ذخیره مسیر فایل عکس به جای ذخیرهی خود عکس در دیتابیس است. در این روش، تنها مسیر عکس در دیتابیس ذخیره میشود و خود عکس در سیستم قرار دارد. این روش علاوه بر کاهش حجم دیتابیس، امکان جستجو و مدیریت بهتری را فراهم میکند و همچنین از لحاظ عملکردی نیز بهینهتر است.
بنابراین، بهترین روش برای ذخیره عکسها در دیتابیس، ذخیره مسیر عکس است.
ولی اگر عکس ها نمیخواهید در سیستم بارگذاری یا نگهداری کنید و حتما باید در دیتابیس ذخیره شوند . باید مشکلاتی را که عنوان کردم را بپذیرید. چون اطلاعی از علت ذخیره در دیتابیس را نمیدانم همینقدر میتوانم پاسخ دهم
توجه فرمائید درSQL Server Express به طور پیشفرض قابلیت ذخیرهسازی تا ۱۰ گیگابایت می باشد
-
نقل قول: جدا کننده اعداد و جمع آنها
اوکی صد در صد پیشنهاد شماره برای ذخیره مسیر عکس بهتره و روش ذخیره مسیر عکس هم بلدم فقط چه کدی در رویداد mouse up دیتا گرید باید بنویسم که وقتی روی رکورد خاصی کلیک میکنیم عکس اون رکورد هم فراخونی بشه و در پیکچر باکس ظاهر بشه؟
-
نقل قول: جدا کننده اعداد و جمع آنها
private void dataGridView1_MouseUp(object sender, MouseEventArgs e){
if (e.Button == MouseButtons.Left)
{
DataGridView.HitTestInfo hitTestInfo = dataGridView1.HitTest(e.X, e.Y);
if (hitTestInfo.RowIndex >= 0)
{
// Get the value of the first cell in the row
string imageFilePath = dataGridView1.Rows[hitTestInfo.RowIndex].Cells[0].Value.ToString();
// Load the image into the picture box
pictureBox1.Image = Image.FromFile(imageFilePath);
}
}
}
در این کد، ابتدا دریافت میکنیم که کدام ردیف در دیتا گرید انتخاب شده است. سپس، با استفاده از مقدار اولین سلول در ردیف انتخاب شده، مسیر فایل عکس را بارگیری میکنیم و آن را در پیکچر باکس نمایش میدهیم. لازم به ذکر است که میبایستی مسیر فایل عکس را به شیوهای که در دیتا گرید قرار دارد ذخیره کنید.
-
نقل قول: جدا کننده اعداد و جمع آنها
نقل قول:
نوشته شده توسط
mostafa580
کد بالا حاصلش کلا Invalid Input هست و باز هم موقع ذخیره خطا میده
کد قبلی تنها در صورتی که مقادیر وارد شده قابل تبدیل به اعداد صحیح باشد، مقدار صحیح محاسبه شده قرار میدهد . برای جلوگیری از این اتفاق، میتوانید از ورودیها قبل از تبدیل به اعداد صحیح، مطمئن شوید که فرمت آنها صحیح است . از این کد استفاده کنید .
private void button1_Click(object sender, EventArgs e){
Regex regex = new Regex(@"^[0-9,-]+$"); // تعریف یک الگوی Regular Expression برای ورودیهای عددی
if (regex.IsMatch(textBoxX1.Text) && regex.IsMatch(textBoxX2.Text) && regex.IsMatch(textBoxX3.Text) && regex.IsMatch(textBoxX4.Text))
{
int num1 = int.Parse(textBoxX1.Text.Replace(",", ""));
int num2 = int.Parse(textBoxX2.Text.Replace(",", ""));
int num3 = int.Parse(textBoxX3.Text.Replace(",", ""));
int num4 = int.Parse(textBoxX4.Text.Replace(",", ""));
int result = num1 + num2 - num3 + num4;
textBoxX3.Text = result.ToString("n0");
// ذخیره مقدار textBoxX3 در دیتابیس
}
else
{
textBoxX3.Text = "Invalid Input";
}
}
-
نقل قول: جدا کننده اعداد و جمع آنها
ممنون از وقتی که میزارید و با حوصله جواب میدید.
من مقادیری رو در فرم قرار دادم که در دیتا بیس ذخیره میشه و مثلا آدرس عکس رو در تکستی بنام txt_filelog قرار میدم
الان موقع لود اطلاعات که بصورت زیر میباشد
private void dgv_ranande_MouseUp_1(object sender, MouseEventArgs e) {
txt_id.Text = dgv_ranande[0, dgv_ranande.CurrentRow.Index].Value.ToString();
txt_nam.Text = dgv_ranande[1, dgv_ranande.CurrentRow.Index].Value.ToString();
txt_cod.Text = dgv_ranande[2, dgv_ranande.CurrentRow.Index].Value.ToString();
txt_meli.Text = dgv_ranande[3, dgv_ranande.CurrentRow.Index].Value.ToString();
txt_gavahi.Text = dgv_ranande[4, dgv_ranande.CurrentRow.Index].Value.ToString();
txt_tel.Text = dgv_ranande[5, dgv_ranande.CurrentRow.Index].Value.ToString();
txt_vasile.Text = dgv_ranande[6, dgv_ranande.CurrentRow.Index].Value.ToString();
txt_pelak.Text = dgv_ranande[7, dgv_ranande.CurrentRow.Index].Value.ToString();
}
الان کد مربوط به txt_filelog رو چجوری بنویسم که مثلا در pictureBox1 عکس نمایش داده بشه
-
نقل قول: جدا کننده اعداد و جمع آنها
در واقع مثلا جوری باشه که picturebox آدرسشو از txt_filelog بخونه و نمایش بده.
-
نقل قول: جدا کننده اعداد و جمع آنها
نقل قول:
نوشته شده توسط
mostafa580
در واقع مثلا جوری باشه که picturebox آدرسشو از txt_filelog بخونه و نمایش بده.
private void txt_filelog_TextChanged(object sender, EventArgs e){
// بررسی اینکه فایل انتخاب شده وجود دارد
if (File.Exists(txt_filelog.Text))
{
// خواندن تصویر از فایل
Image img = Image.FromFile(txt_filelog.Text);
// نمایش تصویر در pictureBox1
pictureBox1.Image = img;
}
}
-
نقل قول: جدا کننده اعداد و جمع آنها
واقعا خیلی لطف کردین ممنون.
-
نقل قول: جدا کننده اعداد و جمع آنها
ببخشید من یک سوال دیگه از شما داشتم اینکه خب حجم دیتابیس من چون مقادیر تستی داخلش وارد کردم زیاد شده خصوصا اینکه عکس هم داخلش ذخیره شده بود
الان اطلاعات رو پاک میکنم ولی خب حجم دیتابیس پایین نمیاد چه را هی وجود داره که حجم رو پایین بیارم؟
استفاده از نرم افزار db browser خوبه؟
-
نقل قول: جدا کننده اعداد و جمع آنها
نقل قول:
نوشته شده توسط
mostafa580
ببخشید من یک سوال دیگه از شما داشتم اینکه خب حجم دیتابیس من چون مقادیر تستی داخلش وارد کردم زیاد شده خصوصا اینکه عکس هم داخلش ذخیره شده بود
الان اطلاعات رو پاک میکنم ولی خب حجم دیتابیس پایین نمیاد چه را هی وجود داره که حجم رو پایین بیارم؟
استفاده از نرم افزار db browser خوبه؟
متوجه نشدم منظورتان از اینکه حجم پایین نمیاد چی هست آیا میخواهید داده های دیتابیس را کاملا حذف کنید؟
-
نقل قول: جدا کننده اعداد و جمع آنها
بله میخوام داده دیتابیس که بصورت تستی وارد کرده بودم حذف کنم ولی وقتی کل داده ها رو پاک میکنم حجم دیتابیس همچنان بالاست
-
نقل قول: جدا کننده اعداد و جمع آنها
برای حذف اطلاعات کامل یک تیبل :
using System.Data.SqlClient;
// ...
string connectionString = "اسکیوال کانکشن";
string tableName = "نام تیبل";
string sql = "TRUNCATE TABLE " + tableName + ";";
using (SqlConnection connection = new SqlConnection(connectionString))
{
using (SqlCommand command = new SqlCommand(sql, connection))
{
command.CommandType = CommandType.Text;
connection.Open();
command.ExecuteNonQuery();
}
}
و برای حذف داده های کل تیبل ها در صورتیکه اجازه دسترسی باشد.
using System.Data.SqlClient;
// ...
string connectionString = "اسکیوال کانکشن";
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
SqlCommand command = new SqlCommand("EXEC sp_MSForEachTable 'TRUNCATE TABLE ?'", connection);
command.ExecuteNonQuery();
connection.Close();
}