PDA

View Full Version : مبتدی: تبدیل چک باکس یا رادیو باتن به عدد از سی شارپ به sql



hamidtmu
چهارشنبه 30 آبان 1397, 00:05 صبح
با سلام
من کد زیر را دارم چک باکسو که میزنم به صورت یک و برمی دارم به صورت صفر در sql نشون میده
می خواستم یه راهنمایی کنید که به جای یک مثلا بنویسه مرد (یعنی وقتی تیک می خوره یه کلمه توی sql بنویسه)
خیلی ممنون . من مبتدیم و صفر ممنون میشم کدو اصلاح کنید
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using Stimulsoft.Report;


namespace Report_Stimul_AND_Crystal
{
public partial class frmKarbar : Form
{
public frmKarbar()
{
InitializeComponent();
}


SqlConnection con = new SqlConnection("Data Source=(Local);initial catalog=ReportDB;integrated security=true");
SqlCommand cmd = new SqlCommand();


void Display()
{
DataSet ds = new DataSet();
SqlDataAdapter adp = new SqlDataAdapter();
adp.SelectCommand = new SqlCommand();
adp.SelectCommand.Connection = con;
adp.SelectCommand.CommandText = "Select * from Karbar";
adp.Fill(ds,"Karbar");
dgvKarbar.DataSource = ds;
dgvKarbar.DataMember = "Karbar";
//*******************************
dgvKarbar.Columns[0].HeaderText = "کد";
dgvKarbar.Columns[1].HeaderText = "نام کاربري";
dgvKarbar.Columns[2].HeaderText = "کلمه عبور";
}
private void frmKarbar_Load(object sender, EventArgs e)
{
Display();
}


private void btnSave_Click(object sender, EventArgs e)
{
try
{
cmd.Parameters.Clear();
cmd.Connection = con;
cmd.CommandText = "insert into Karbar(Uname,Password)values(@a,@b)";
cmd.Parameters.AddWithValue("@a",txtUName.Text);
cmd.Parameters.AddWithValue("@b",checkBox1.Checked);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
Display();
MessageBox.Show("ثبت کاربر انجام شد");
//******************************
txtPassword.Text = "";
txtUName.Text = "";
}
catch (Exception)
{
MessageBox.Show("مشکلي پيش آمده است");
}
}

alexmcse
چهارشنبه 30 آبان 1397, 11:46 صبح
باتن سیو را در برنامه ات باز نویسی کن و در رویداد فرمت این کدها رو بنویس

private void Form1_Load(object sender, EventArgs e) {
radioButton1 .Checked = true;
radioButton1.Text = @"مرد";
radioButton2.Text = @"زن";
}
private void btnSave_Click(object sender, EventArgs e)
{
try
{
cmd.Parameters.Clear();
cmd.Connection = con;
cmd.CommandText = "insert into Karbar(Uname,Password)values(@a,@b)";
cmd.Parameters.AddWithValue("@a", txtUName.Text);
if(radioButton1.Checked )
cmd.Parameters.AddWithValue("@b", "مرد");
if (radioButton2.Checked)
cmd.Parameters.AddWithValue("@b", "زن");
con.Open();
cmd.ExecuteNonQuery();
con.Close();
Display();
MessageBox.Show("ثبت کاربر انجام شد");
//******************************
txtPassword.Text = "";
txtUName.Text = "";
}
catch (Exception)
{
MessageBox.Show("مشکلي پيش آمده است");
}
}

omidamiry
پنج شنبه 01 آذر 1397, 06:13 صبح
سلام


طراحی هر برنامه نویس با برنامه نویس دیگر متفاوت است ولی برای واحد شدن و استاندارد سازی

شما نباید کلمه مرد و زن یا فعال و غیرفعال یا هر کلمه ای که معنی داشتن و نداشتن داشته باشه رو به صورت متن ذخیره کرد

راه درستش اینه که ستون هایی که دارای دو معنی مثبت و منفی هستند ببین دومعنی و فقط دو معنی

به صورت بیت تعریف شود و زمانی true بود ینی معنی یک و زمانی false بود ینی معنی دو و این موضوع رو با استفاده از case در sql برای ویو به کاربر میتونید منیج کنید

در مورد شما این میشه :

مرد = true
زن = false
در زمان ثبت اطلاعات 0 و 1 درج می کنید ولی در زمان نمایش در select به ازای مرد یا زن بودن با استفاده از دستور case در sql مقدار بولین ستون را به مقدار تکس تبدیل میکنید و به کاربر نمایش میدین



موفق باشی

hamidtmu
جمعه 02 آذر 1397, 18:40 عصر
خیلی ممنون بابت پاسخ گویی / راه افتادم