نمایش نتایج 1 تا 7 از 7

نام تاپیک: مشکل در UPDATE رکورد

  1. #1

    Smile مشکل در UPDATE رکورد

    برای update کد زیر رو نوشتم ولی اگر به فیلدهای که convert میشوند به int مقداری ندهم و بعد کلید update رو بزنم روی اولین خطی که این تبدیل قراره انجام بشه پیغام خطای Input string was not in a correct format. رو میدهد این در حالی است که در بانک اجازه null را دادم لطفا راهنماییم کنید چه کنم.اگر نمونه کد گذاشتید ممنون میشم

     private void btnUpdate_Click(object sender, EventArgs e)
    {
    int intposition;
    SqlCommand objCommand = new SqlCommand();
    intposition = objCurrencyManager.Position;

    objCommand.Connection = objConnection;
    objCommand.CommandText = "update tbuy set code=@code,name=@name," +
    "model=@model,manufacturer=@manufacturer,sn=@s n," +
    "country=@country,price=@price,count=@count," +
    "date=@date,description=@description where code=@code";
    objCommand.CommandType = CommandType.Text;
    objCommand.Parameters.AddWithValue("@code",
    Convert.ToInt32(txtCode.Text));
    objCommand.Parameters.AddWithValue("@name", txtName.Text);
    objCommand.Parameters.AddWithValue("@model", txtModel.Text);
    objCommand.Parameters.AddWithValue("@manufacturer" ,
    txtManufacturer.Text);
    objCommand.Parameters.AddWithValue("@sn",
    Convert.ToInt32(txtSN.Text));
    objCommand.Parameters.AddWithValue("@country", txtCountry.Text);
    objCommand.Parameters.AddWithValue("@price",
    Convert.ToDecimal(txtPrice.Text));
    objCommand.Parameters.AddWithValue("@count",
    Convert.ToInt32(txtCount.Text));
    objCommand.Parameters.AddWithValue("@date", txtDate.Text);
    objCommand.Parameters.AddWithValue("@description",
    txtDescription.Text);

    objConnection.Open();
    objCommand.ExecuteNonQuery();
    objConnection.Close();

    FillDataSetAndView();
    BindFields();

    objCurrencyManager.Position = intposition;
    ShowPosition();

    toolStripStatusLabel1.Text = "Record Updated";

    }// end btnUpdate_Click

  2. #2

    نقل قول: مشکل در UPDATE رکورد

    دوست عزیز مشکل از سمت بانک شما نیست ، #C نمیتونه مقدار خالی رو به عدد تبدیل کنه. نیازی نیست در سمت برنامه تبدیل به عدد کنه و به عنوان پارامتر بفرستید ، به همون صورت استرینگ بفرستید SQL خودش این کار رو انجام میده.
    objCommand.Parameters.AddWithValue("@sn", txtSN.Text);

  3. #3

    نقل قول: مشکل در UPDATE رکورد

    متشکر دوست گرامی
    به وسیله کد زیر کار اضافه کردن رکورد به بانک را انجام میدهم ولی وقتی روی هر رکوردی که هستم دکمه new را میزنم و اگر در فیلدهایی که به صورت عددی هستند کلید Tab روی کیبورد را بزنم تا از آن فیلد بگذرم عدد مربوط به رکوردی که در روی آن قبلا بودم در textbox ظاهر میشود در صورتی که من با زدن کلید Tab خواستم از دادن مقدار به آن فیلد صرف نظر کنم لطفا راهنماییم کنید

     private void btnNew_Click(object sender, EventArgs e)
    {

    txtCode.Text = "";
    txtCount.Text = "";
    txtCountry.Text = "";
    txtDate.Text = "";
    txtDescription.Text = "";
    txtManufacturer.Text = "";
    txtModel.Text = "";
    txtName.Text = "";
    txtPrice.Text = "";
    txtSN.Text = "";
    }// end method btnAdd_Click

    private void btnAdd_Click(object sender, EventArgs e)
    {
    int intPosition;
    intPosition = objCurrencyManager.Position;
    SqlCommand objCommand=new SqlCommand();
    objCommand.Connection = objConnection;
    objCommand.CommandText = "insert into tbuy (code,name,model," +
    "manufacturer,sn,country,price,count,date,descript ion)" +
    "values(@code,@name,@model,@manufacturer,@sn,@coun try," +
    "@price,@count,@date,@description)";

    objCommand.Parameters.AddWithValue("@code",
    Convert.ToInt32(txtCode.Text));
    objCommand.Parameters.AddWithValue("@name", txtName.Text);
    objCommand.Parameters.AddWithValue("@model", txtModel.Text);
    objCommand.Parameters.AddWithValue("@manufacturer" ,
    txtManufacturer.Text);

    objCommand.Parameters.AddWithValue("@sn",
    Convert.ToInt32(txtSN.Text));
    objCommand.Parameters.AddWithValue("@country", txtCountry.Text);
    objCommand.Parameters.AddWithValue("@price",
    Convert.ToDecimal(txtPrice.Text));
    objCommand.Parameters.AddWithValue("@count",
    Convert.ToInt32(txtCount.Text));
    objCommand.Parameters.AddWithValue("@date", txtDate.Text);
    objCommand.Parameters.AddWithValue("@description",
    txtDescription.Text);

    objConnection.Open();
    try
    {
    int i=objCommand.ExecuteNonQuery();
    if (i == 1)
    MessageBox.Show("اطلاعات شما با موفقیت ثبت شد");
    }// end try
    catch (SqlException sqlExceptionErr)
    {
    if (sqlExceptionErr.Number == 2627)
    MessageBox.Show("اين کد قبلا ثبت شده");
    else
    MessageBox.Show(sqlExceptionErr.Message);
    }// end catch

    objConnection.Close();

    FillDataSetAndView();
    BindFields();

    objCurrencyManager.Position = intPosition;
    ShowPosition();

    toolStripStatusLabel1.Text = "Record Added";

    }// end btnAdd_Click

  4. #4

    نقل قول: مشکل در UPDATE رکورد

    لطفا یکی در حل این مشکل کمک کنه

  5. #5

    نقل قول: مشکل در UPDATE رکورد

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

  6. #6

    نقل قول: مشکل در UPDATE رکورد

    مشکل قبلی رو که کسی نگفت
    آخه سوالتون واضح نیست. مشکلی که میگید ربطی به کدی که اینجا گذاشتید نداره ، احتمال داره فیلد مورد نظر روی فرم رو به جایی بایند کرده باشید و یا شرط خاصی در طراحی اون گذاشته باشید.
    لطفا یکی بگه چرا تمام فیلدها update میشن به جز فیلد code سورس مربوط به update را نیز در اول تایپیک گذاشتم
    شرط آپدیت شما برابری Code است.
    where code=@code

    خب این شرط رکوردهایی رو پیدا میکنه که کد اونها با کد وارد شده مساوی باشه. در صورتی که قصد دارید کد رو هم تغییر بدید باید اضافه بر کد جدید ، کد قدیم رو هم داشته باشید و بصورت زیر این کار رو انجام بدید
    Update tbuy Set Code = @NewCode
    Where Code = @OldCode

    به تکراری نبودن کد هم در صورت کلید اصلی بودن توجه داشته باشید.

  7. #7

    نقل قول: مشکل در UPDATE رکورد

    نقل قول نوشته شده توسط Reza_Yarahmadi مشاهده تاپیک
    آخه سوالتون واضح نیست. مشکلی که میگید ربطی به کدی که اینجا گذاشتید نداره ، احتمال داره فیلد مورد نظر روی فرم رو به جایی بایند کرده باشید و یا شرط خاصی در طراحی اون گذاشته باشید.
    فکر میکنید مشکل از کد زیر باشه چه طور حلش کنم

     private void BindFields()
    {
    txtCode.DataBindings.Clear();
    txtCount.DataBindings.Clear();
    txtCountry.DataBindings.Clear();
    txtDate.DataBindings.Clear();
    txtDescription.DataBindings.Clear();
    txtManufacturer.DataBindings.Clear();
    txtModel.DataBindings.Clear();
    txtName.DataBindings.Clear();
    txtPrice.DataBindings.Clear();
    txtSN.DataBindings.Clear();

    txtCode.DataBindings.Add("text", objDataView, "code");
    txtCount.DataBindings.Add("text", objDataView, "count");
    txtCountry.DataBindings.Add("text", objDataView, "country");
    txtDate.DataBindings.Add("text", objDataView, "date");
    txtDescription.DataBindings.Add("text", objDataView, "description");
    txtManufacturer.DataBindings.Add("text", objDataView, "manufacturer");
    txtModel.DataBindings.Add("text", objDataView, "model");
    txtName.DataBindings.Add("text", objDataView, "name");
    txtPrice.DataBindings.Add("text", objDataView, "price");
    txtSN.DataBindings.Add("text", objDataView, "sn");

    toolStripStatusLabel1.Text = "Redy";
    }// end method BindFields

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •