PDA

View Full Version : ویرایش فیلد کامبوباکس



kamalian1347
دوشنبه 20 دی 1389, 11:18 صبح
سلام
من در آیتم ورود اطلاعات از فیلدی از نوع کامبوباکس استفاده میکنم و مقدار اون فیلدو انتخاب میکنم.
در آیتم ویرایش زمان ویرایش رکورد انتخابی,آن فیلد به جای مقدار واقعی , مقدار دیفالت SELECTVALUE را نشان میدهد. در هنگام بایند کردن فیلدها اگر من مقدار ٍثابتی به SELECTVALUE تخصیص دهم همیشه همون رو برای تمام رکوردها نمایش میده . حالا چکار باید کرد که در گردش بین رکوردها - این فیلد در کامبو باکس مربوطه مقدار انتسابی خود را نشان دهد؟
ممنون

shuriken
دوشنبه 20 دی 1389, 13:56 عصر
اگه میشه سوالتون رو واضحتر بپرسین؟!

kamalian1347
دوشنبه 20 دی 1389, 14:28 عصر
من در قسمت ورود اطلاعات به یک جدول از یک سری تکست باکس استفاده میکنم. اما یکی از فیلد های ورودی به جای تایپ مقدار یک COMBO BOX گذاشتم و مقدار این فیلد رو به جای تایپ از این COMBO BOX انتخاب میکنم.
حال وقتی این فیلد های رکورد رو با بایند کردن (در قسمت ویرایش رکورد) میارم تو TEXT BOX ها انتظار دارم در کنترل COMBOBOX هم همون مقداری که در هنگام ورود اطلاعات انتخاب کرده ام رو نشون بده.
مثال: من یک کامبوباکس دارم که در اون انواع آبگرمکن قابل انتخاب است و من برای ورود رکورد ایکس از بین (گازی - برقی-نفتی) میام آبگرمکن از نوع برقی رو انتخاب میکنم.خوب ؟
حالا میخوام رکرد ایکس رو ویرایش کنم. میخوام وقتی مقدار فیلدها رو برای ویرایش میبینم. کامبو باکسم هم برقی رو نشون بده.
در حالیکه در حالت معمولی هر چند مقدار برقی در جدول وجود داره اما کامبو باکس اولین آیتم یعنی گازی رو به من نشون میده.:متفکر:

kamalian1347
سه شنبه 21 دی 1389, 07:15 صبح
کسی واقعا جواب این سوالو نمیدونه؟:ناراحت:

shuriken
سه شنبه 21 دی 1389, 09:50 صبح
بایند تو ویندوز پروگرمینگ بعضی وقتا درست کار نمیکنه.
برای اینکه منظورتون براورده بشه باید ایندکس آیتم select شده تو combobox رو جایی ذخیره کنید و بعد برای نمایش
گزینه انتخاب شده ازش استفاده کنید.
اگه بازم درست نشد کدتون رو اینجا بذارید تا کمکتون کنم.

kamalian1347
سه شنبه 21 دی 1389, 10:51 صبح
با تشکر . اگه مقدارشو مستقیما بخوام با selectvalue بدم مشکلی نیست. مشکل من اینجاست که تعداد انتخابای کامبوباکسم ممکنه کم و زیاد بشه لذا من مجبور میشم اونو به یه متغییر بدم و اونوقت روش یه switch بزارم که بسته به مقدار متغییر انتخابمو نشون بده و این کار نمیکنه. سورس برنامم :using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
// Import Data and SqlClient namespaces

using System.Data.SqlClient;
namespace prgnezarat
{
using System.Data;
using System.Data.SqlClient;
public partial class virayeshfardi : Form
{


private const string _CommandText ="Select nodarkhast ,fname ,lname ,nofish ,datefish,nogovahinameh,dategovahinameh,payment ,codeasan ,codenasab ,noparvanehsakht ,dateparvaneh ,addnasb ,telmalek ,notavaqof ,zarfyatasan ,wazntahamol ,datetashkilpar ,codeestandard ,nohalogram,plak FROM tblbazresi";


private const string _ConnectionString =
"server=localhost;database=asansor;" +
"user id=sa;password=123;";

// Declare global objects...
SqlConnection objConnection;
SqlDataAdapter objDataAdapter;
DataSet objDataSet;
DataView objDataView;
CurrencyManager objCurrencyManager;


private void FillDataSetAndView()
{
// Initialize a new instance of the DataSet object...
objDataSet = new DataSet();

// Fill the DataSet object with data...
objDataAdapter.Fill(objDataSet, "tblbazresi");

// Set the DataView object to the DataSet object...
objDataView = new DataView(
objDataSet.Tables["tblbazresi"]);

// Set our CurrencyManager object
// to the DataView object...
objCurrencyManager = (CurrencyManager)(
this.BindingContext[objDataView]);
}

private void BindFields()
{
// Clear any previous bindings...
txtdarkhast.DataBindings.Clear();
txtfname.DataBindings.Clear();
txtlname.DataBindings.Clear();
txtnofish.DataBindings.Clear();
txttel.DataBindings.Clear();
txtadd.DataBindings.Clear();
txtprice.DataBindings.Clear();
txtplak.DataBindings.Clear();
txttatapar.DataBindings.Clear();
txttasodgov.DataBindings.Clear();
txtdatefish.DataBindings.Clear();
txttasopar.DataBindings.Clear();
txtnopar.DataBindings.Clear();
txthalogram.DataBindings.Clear();
txtstandard.DataBindings.Clear();

txttavaqof.DataBindings.Clear();
txtzarfyat.DataBindings.Clear();
txtnogov.DataBindings.Clear();
txtwazn.DataBindings.Clear();


// Add new bindings to the DataView object...
txtdarkhast.DataBindings.Add("Text",
objDataView, "nodarkhast");
txtfname.DataBindings.Add("Text",
objDataView, "fname");
txtlname.DataBindings.Add("Text",
objDataView, "lname");
txtnofish.DataBindings.Add("Text",
objDataView, "nofish");
txttel.DataBindings.Add("Text",
objDataView, "telmalek");
txtadd.DataBindings.Add("Text",
objDataView, "addnasb");
txtprice.DataBindings.Add("Text",
objDataView, "payment");

txtnopar.DataBindings.Add("Text",
objDataView, "noparvanehsakht");
txttasopar.DataBindings.Add("Text",
objDataView, "dateparvaneh");
txttavaqof.DataBindings.Add("Text",
objDataView, "notavaqof");
txtzarfyat.DataBindings.Add("Text",
objDataView, "zarfyatasan");
txtwazn.DataBindings.Add("Text",
objDataView, "wazntahamol");
txttatapar.DataBindings.Add("Text",
objDataView, "datetashkilpar");
txtstandard.DataBindings.Add("Text",
objDataView, "codeestandard");
txtdatefish.DataBindings.Add("Text",
objDataView, "datefish");

txthalogram.DataBindings.Add("Text",
objDataView, "nohalogram");
txtnogov.DataBindings.Add("Text",
objDataView, "nogovahinameh");
txttasodgov.DataBindings.Add("Text",
objDataView, "dategovahinameh");
txtplak.DataBindings.Add("Text",
objDataView, "plak");

//////////////////////////////////////////////////////////////////////////////////////////
// conasab.selectvalue= ??????????????????? // //
// //
///////////////////////////////////////////////////////////////////////////////////////////

// Display a ready status...
toolStripStatusLabel1.Text = "آماده";
}

private void ShowPosition()
{
// Always format the number
// in the txtPrice field to include cents
try
{
txtprice.Text =
Decimal.Parse(txtprice.Text).ToString("##0.00");
}
catch(System.Exception )
{
txtprice.Text = "0";
txtprice.Text =
Decimal.Parse(txtprice.Text).ToString("##0.00");
}

// Display the current position
// and the number of records
txtRecordPosition.Text =
(objCurrencyManager.Position + 1) +
" of " + objCurrencyManager.Count;
}






public virayeshfardi()
{
objConnection = new SqlConnection(_ConnectionString);
objDataAdapter = new SqlDataAdapter(
_CommandText, objConnection);
InitializeComponent();
}




private void statusStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
{

}

private void virayeshfardi_Load(object sender, EventArgs e)
{
// TODO: This line of code loads data into the 'asansorDataSet10.tblnasab' table. You can move, or remove it, as needed.
this.tblnasabTableAdapter.Fill(this.asansorDataSet 10.tblnasab);
// TODO: This line of code loads data into the 'asansorDataSet10.tblasansor' table. You can move, or remove it, as needed.
this.tblasansorTableAdapter.Fill(this.asansorDataS et10.tblasansor);

// Add items to the combo box...
cbofield.Items.Add("نام و نام خانوادگی");
cbofield.Items.Add("نام شرکت");
cbofield.Items.Add("شماره فیش");
cbofield.Items.Add("شماره درخواست");

cbofield.Items.Add("شماره تلفن ");
// Make the first item selected...
cbofield.SelectedIndex = 0;

// Fill the DataSet and bind the fields...
FillDataSetAndView();
BindFields();

// Show the current record position...
ShowPosition();




}

private void btnMoveFirst_Click(object sender, EventArgs e)
{
// Set the record position to the first record...
objCurrencyManager.Position = 0;
btnMovePrevious.Enabled = false;
btnMoveNext.Enabled = true;
// Show the current record position...
ShowPosition();
}

private void MovePrevious_Click(object sender, EventArgs e)
{
btnMovePrevious.Enabled = true;
btnMoveNext.Enabled = true;
// Move to the previous record...
objCurrencyManager.Position -= 1;

// Show the current record position...
ShowPosition();
}

private void btnMoveNext_Click(object sender, EventArgs e)
{
btnMovePrevious.Enabled = true;
btnMoveNext.Enabled =true;
objCurrencyManager.Position += 1;

//Show the current record position...
ShowPosition();
}

private void btnMoveLast_Click(object sender, EventArgs e)
{
btnMovePrevious.Enabled = true;
// Set the record position to the last record...
objCurrencyManager.Position =
objCurrencyManager.Count - 1;
// Show the current record position...
btnMoveNext.Enabled = false;
ShowPosition();
}

private void groupBox1_Enter(object sender, EventArgs e)
{

}

private void btnsort_Click(object sender, EventArgs e)
{
// Determine the appropriate item selected and set the
// Sort property of the DataView object...
switch (cbofield.SelectedIndex)
{
case 0: // Last Name
objDataView.Sort = "fname";
objDataView.Sort = "lname";
break;
case 1: // First Name
objDataView.Sort = "lname";
break;
case 2: // Book Title
objDataView.Sort = "nofish";
break;
case 3: // Price
objDataView.Sort = "nodarkhast";
break;
case 4: // Price
objDataView.Sort = "telmalek";
break;

}

// Call the click event for the MoveFirst button...
btnMoveFirst_Click(null, null);

// Display a message
// that the records have been sorted...
toolStripStatusLabel1.Text = "مرتب سازی رکوردها انجام شد";
}

private void btnsearch_Click(object sender, EventArgs e)
{
// Declare local variables...
int intPosition;

// Determine the appropriate item selected and set the
// Sort property of the DataView object...
switch (cbofield.SelectedIndex)
{
case 0: // Last Name
objDataView.Sort = "lname";
break;
case 1: // First Name
objDataView.Sort = "lname";
break;
case 2: // Book Title
objDataView.Sort = "nofish";
break;
case 3: // Price
objDataView.Sort = "nodarkhast";
break;
case 4: // Price
objDataView.Sort = "telmalek";
break;

}

// If the search field is not price then...
if (cbofield.SelectedIndex < 5)
{
// Find the last name, first name, or title...
intPosition =
objDataView.Find(txtsearch.Text);
}
else
{
// otherwise find the price...
intPosition = objDataView.Find(
Decimal.Parse(txtsearch.Text));
}
if (intPosition == -1)
{
// Display a message
// that the record was not found...
toolStripStatusLabel1.Text = "رکورد پیدا نشد";
}
else
{
// Otherwise display a message that the record
// was found and reposition the CurrencyManager
// to that record...
toolStripStatusLabel1.Text = "رکورد پیدا شد";
objCurrencyManager.Position = intPosition;
}

// Show the current record position...
ShowPosition();


}

private void btnupdate_Click(object sender, EventArgs e)
{
// Declare local variables and objects...
int intPosition;
SqlCommand objCommand = new SqlCommand();

// Save the current record position...
intPosition = objCurrencyManager.Position;

// Set the SqlCommand object properties...
objCommand.Connection = objConnection;
objCommand.CommandText = "UPDATE tblbazresi SET fname=@fname,lname=@lname,datetashkilpar=@datetash kilpar,codenasab=@codenasab,dateparvaneh=@dateparv aneh,noparvanehsakht=@noparvanehsakht,nohalogram=@ nohalogram,codeestandard=@codeestandard,telmalek=@ telmalek,addnasb=@addnasb,nofish=@nofish,datefish= @datefish,payment=@payment,codeasan=@codeasan,nota vaqof=@notavaqof,wazntahamol=@wazntahamol,zarfyata san=@zarfyatasan,nogovahinameh=@nogovahinameh,date govahinameh=@dategovahinameh,plak=@plak WHERE nodarkhast=@nodarkhast";
objCommand.CommandType = CommandType.Text;

// Add parameters for the placeholders in the SQL in
// the CommandText property...

// Parameter for the title field...
objCommand.Parameters.AddWithValue("@lname",
txtlname.Text);
objCommand.Parameters.AddWithValue("@fname",
txtfname.Text);
objCommand.Parameters.AddWithValue("@telmalek",
txttel.Text);
objCommand.Parameters.AddWithValue("@addnasb",
txtadd.Text);
objCommand.Parameters.AddWithValue("@nofish",
txtnofish.Text);
// Parameter for the price field...
/* objCommand.Parameters.AddWithValue("@payment",
txtprice.Text).DbType = DbType.Currency;*/
objCommand.Parameters.AddWithValue("@payment",
txtprice.Text);
objCommand.Parameters.AddWithValue("@datetashkilpar",
txttatapar.Text);

objCommand.Parameters.AddWithValue("@dategovahinameh",
txttasodgov.Text);

objCommand.Parameters.AddWithValue("@datefish",
txtdatefish.Text);

objCommand.Parameters.AddWithValue("@dateparvaneh",
txttasopar.Text);
objCommand.Parameters.AddWithValue("@noparvanehsakht",
txtnopar.Text);
objCommand.Parameters.AddWithValue("@nohalogram",
txthalogram.Text);

objCommand.Parameters.AddWithValue("@codeestandard",
txtstandard.Text);


objCommand.Parameters.AddWithValue("@notavaqof",
txttavaqof.Text);

objCommand.Parameters.AddWithValue("@zarfyatasan",
txtzarfyat.Text);
objCommand.Parameters.AddWithValue("@nogovahinameh",
txtnogov.Text);

objCommand.Parameters.AddWithValue("@wazntahamol",
txtwazn.Text);
objCommand.Parameters.AddWithValue("@plak",
txtplak.Text);
objCommand.Parameters.AddWithValue("@codenasab", conasab.SelectedValue.ToString());

objCommand.Parameters.AddWithValue("@codeasan", coasan.SelectedValue.ToString());


// objCommand.Parameters.AddWithValue("@nodarkhast",
// txtdarkhast.Text);
// 99999999999999999999999999999999999999999999999999 99999999
objCommand.Parameters.AddWithValue("@nodarkhast",
this.BindingContext[objDataView, "nodarkhast"].Current);

// Open the connection...
objConnection.Open();

// Execute the SqlCommand object to update the data...
objCommand.ExecuteNonQuery();

// Close the connection...
objConnection.Close();

// Fill the DataSet and bind the fields...
FillDataSetAndView();
BindFields();
// Set the record position
// to the one that you saved...
objCurrencyManager.Position = intPosition;

// Show the current record position...
ShowPosition();

// Display a message that the record was updated...
toolStripStatusLabel1.Text = "رکورد ویرایش شد";
}

private void btndelete_Click(object sender, EventArgs e)
{
// Declare local variables and objects...
int intPosition;
SqlCommand objCommand = new SqlCommand();

// Save the current record position - 1 for the one to
// be deleted...
intPosition =
this.BindingContext[objDataView].Position - 1;

// If the position is less than 0 set it to 0...
if (intPosition < 0)
intPosition = 0;

// Set the Command object properties...
objCommand.Connection = objConnection;
objCommand.CommandText = "DELETE FROM tblbazresi " +
"WHERE nodarkhast = @nodarkhast;" +
"DELETE FROM tblnobat Where nodarkhast = @nodarkhast";
// Parameter for the title_id field...
objCommand.Parameters.AddWithValue("@nodarkhast",
this.BindingContext[objDataView, "nodarkhast"].Current);

// Open the database connection...
objConnection.Open();

// Execute the SqlCommand object to update the data...
objCommand.ExecuteNonQuery();

// Close the connection...
objConnection.Close();

// Fill the DataSet and bind the fields...
FillDataSetAndView();
BindFields();

// Set the record position
// to the one that you saved...
this.BindingContext[objDataView].Position =
intPosition;

// Show the current record position...
ShowPosition();

// Display a message that the record was deleted...
toolStripStatusLabel1.Text = "رکورد حذف شد";

}
private void txtfname_KeyDown(object sender, KeyEventArgs e)
{
switch (e.KeyValue)
{
case 40:
case 13:
txtlname.Focus();
break;
case 38:
txttasodgov.Focus();
break;
}
}

private void txtlname_TextChanged(object sender, EventArgs e)
{

}

private void txtlname_KeyDown(object sender, KeyEventArgs e)
{
switch (e.KeyValue)
{
case 40:
case 13:
txttel.Focus();
break;
case 38:
txtfname.Focus();
break;
}
}

private void txttel_KeyDown(object sender, KeyEventArgs e)
{
switch (e.KeyValue)
{
case 40:
case 13:
txtnofish.Focus();
break;
case 38:
txtlname.Focus();
break;
}
}

private void txtnofish_KeyDown(object sender, KeyEventArgs e)
{
switch (e.KeyValue)
{
case 40:
case 13:
txtprice.Focus();
break;
case 38:
txttel.Focus();
break;
}
}

private void label6_Click(object sender, EventArgs e)
{

}

private void txtprice_Click(object sender, EventArgs e)
{

}

private void txtprice_KeyDown(object sender, KeyEventArgs e)
{
switch (e.KeyValue)
{
case 40:
case 13:
txtdatefish.Focus();
break;
case 38:
txtnofish.Focus(); break;
}
}

private void txtdatefish_KeyDown(object sender, KeyEventArgs e)
{
switch (e.KeyValue)
{
case 40:
case 13:
txttatapar.Focus();
break;
case 38:
txtprice.Focus();
break;
}
}

private void txttatapar_KeyDown(object sender, KeyEventArgs e)
{
switch (e.KeyValue)
{
case 40:
case 13:
txttasopar.Focus();
break;
case 38:
txtdatefish.Focus();
break;
}
}

private void txttasopar_KeyDown(object sender, KeyEventArgs e)
{
switch (e.KeyValue)
{
case 40:
case 13:
txtadd.Focus();
break;
case 38:
txttatapar.Focus();
break;
}
}

private void txtadd_KeyDown(object sender, KeyEventArgs e)
{
switch (e.KeyValue)
{
case 40:
case 13:
conasab.Focus();
break;
case 38:
txttasopar.Focus();
break;
}
}

private void conasab_KeyDown(object sender, KeyEventArgs e)
{
switch (e.KeyValue)
{
case 40:
case 13:
coasan.Focus();
break;
case 38:
txtadd.Focus();
break;
}
}

private void coasan_KeyDown(object sender, KeyEventArgs e)
{
switch (e.KeyValue)
{
case 40:
case 13:
txtzarfyat.Focus();
break;
case 38:
conasab.Focus();
break;
}
}

private void txtzarfyat_KeyDown(object sender, KeyEventArgs e)
{
switch (e.KeyValue)
{
case 40:
case 13:
txtwazn.Focus();
break;
case 38:
coasan.Focus();
break;
}
}

private void txtwazn_KeyDown(object sender, KeyEventArgs e)
{
switch (e.KeyValue)
{
case 40:
case 13:
txttavaqof.Focus();
break;
case 38:
txtzarfyat.Focus();
break;
}
}

private void txttavaqof_KeyDown(object sender, KeyEventArgs e)
{
switch (e.KeyValue)
{
case 40:
case 13:
txtstandard.Focus();
break;
case 38:
txtwazn.Focus();
break;
}
}

private void txtstandard_KeyDown(object sender, KeyEventArgs e)
{
switch (e.KeyValue)
{
case 40:
case 13:
txthalogram.Focus();
break;
case 38:
txttavaqof.Focus();
break;
}
}

private void txthalogram_KeyDown(object sender, KeyEventArgs e)
{
switch (e.KeyValue)
{
case 40:
case 13:
txtnopar.Focus();
break;
case 38:
txtstandard.Focus();
break;
}
}

private void txtnopar_KeyDown(object sender, KeyEventArgs e)
{
switch (e.KeyValue)
{
case 40:
case 13:
txtnogov.Focus();
break;
case 38:
txthalogram.Focus();
break;
}
}

private void txtnogov_KeyDown(object sender, KeyEventArgs e)
{
switch (e.KeyValue)
{
case 40:
case 13:
txttasodgov.Focus();
break;
case 38:
txtnopar.Focus();
break;
}
}

private void txttasodgov_KeyDown(object sender, KeyEventArgs e)
{
switch (e.KeyValue)
{
case 40:
case 13:
txtfname.Focus();
break;
case 38:
txtnogov.Focus();
break;
}
}

private void virayeshfardi_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == 'ی') e.KeyChar = 'ي';
if (e.KeyChar == 'ک') e.KeyChar = 'ك';

}
}
}

shuriken
چهارشنبه 22 دی 1389, 08:21 صبح
شما میتونین برای اینکه این مشکلتون حل بشه از selecteditem استفاده کنید که text آیتم انخاب شدرو برگردونه

یه نکته رو هم باید گوشزد کنم
برای اینکه کد بذارید اینجا یا تو تگ code قرارش بدین یا فایلو آپلود کنین.
اینطور که شما نوشتین خیلی نامرتب و گیج کنندست

kamalian1347
پنج شنبه 23 دی 1389, 09:37 صبح
شما میتونین برای اینکه این مشکلتون حل بشه از selecteditem استفاده کنید که text آیتم انخاب شدرو برگردونه

یه نکته رو هم باید گوشزد کنم
برای اینکه کد بذارید اینجا یا تو تگ code قرارش بدین یا فایلو آپلود کنین.
اینطور که شما نوشتین خیلی نامرتب و گیج کنندست




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