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

نام تاپیک: Error: the variable named ‘@Id’ has already been declared. Variable names must be uniqe within a que

  1. #1

    Exclamation Error: the variable named ‘@Id’ has already been declared. Variable names must be uniqe within a que

    سلام دوستان .
    زیر برنامه ی زیر برای اضافه کردن یک رکورد به database می باشد و با هر بار اجرا تنها یک رکورد به database اضافه می کند و چنانچه بخواهم رکورد دیگری اضافه کنم با Error مواجه می شوم و عمل درج رکورد دوم صورت نمی گیره مگر اینکه دوباره برنامه رو Run کنم.
    کسی می دونه علت چیه؟

    کسی می تونه کمک کنه؟
    خیلی ممنون می شم اگه راهنمایی کنید.
    Error: the variable named ‘@Id’ has already been declared. Variable names must be uniqe within a query batch or store procedure.
    namespace Company

    {

    public partial class FrmAddAluminium : Form

    {

    const string _connectionString="server=localhost ; database=Company ; uid=sa ; pwd=sprt&&1363 ";

    const string _commandText = "SELECT * " +

    "FROM AluminiumBuyTbl "+

    "JOIN Person ON AluminiumBuyTbl.Id=Person.Id ";





    SqlConnection objConnection = new SqlConnection(_connectionString);

    SqlCommand objCommand = new SqlCommand();

    SqlDataAdapter objDataAdapter = new SqlDataAdapter(_commandText, _connectionString);

    DataSet objDataSet ;

    DataView objDataView;






    public FrmAddAluminium()

    {

    InitializeComponent();



    }



    private void FrmAddAluminium_Load(object sender, EventArgs e)

    {

    FillDatasetAndDataview();

    BindingData();

    }



    private void FillDatasetAndDataview()

    {

    objDataSet = new DataSet();

    objDataAdapter.Fill(objDataSet, "AluminiumBuyTbl");

    objDataView = new DataView(objDataSet.Tables["AluminiumBuyTbl"]);



    }

    private void BindingData()

    {



    txtOnUnitCost.DataBindings.Clear();

    txtSalesMan.DataBindings.Clear();

    txtSumPrice.DataBindings.Clear();

    txtWeight.DataBindings.Clear();





    txtOnUnitCost.DataBindings.Add("Text", objDataView, "OnUnitCost");

    txtSalesMan.DataBindings.Add("Text", objDataView, "SalesMan");

    txtSumPrice.DataBindings.Add("Text", objDataView, "SumPrice");

    txtWeight.DataBindings.Add("Text", objDataView, "Weight");

    }



    private void btnAdd_Click(object sender, EventArgs e)

    {



    Int16 result;

    SqlCommand maxIdCommand = new SqlCommand( "SELECT MAX(Id) " +

    "FROM AluminiumBuyTbl ", objConnection);

    objConnection.Open();

    object maxId = maxIdCommand.ExecuteScalar();

    int intmaxId = (int)maxId;

    string str = (intmaxId+1).ToString();



    objCommand.Connection = objConnection;

    objCommand.CommandType = CommandType.Text;

    objCommand.CommandText = "INSERT INTO AluminiumBuyTbl " +

    "(Id ,SalesMan ,OnUnitCost ,Weight ,SumPrice) " +

    "VALUES (@Id ,@SalesMan ,@OnUnitCost ,@Weight ,@SumPrice) ";






    objCommand.Parameters.AddWithValue("@Id", str).DbType = DbType.Int16 ;

    objCommand.Parameters.AddWithValue("@SalesMan", txtSalesMan.Text);

    objCommand.Parameters.AddWithValue("@OnUnitCost", txtOnUnitCost.Text).DbType = DbType.Currency;

    objCommand.Parameters.AddWithValue("@Weight", txtWeight.Text);

    objCommand.Parameters.AddWithValue("@SumPrice", txtSumPrice.Text).DbType=DbType.Currency ;



    try

    {

    objCommand.ExecuteNonQuery();

    }

    catch (Exception Err)

    {

    MessageBox.Show(Err.Message);



    }



    objConnection.Close();



    FillDatasetAndDataview();

    BindingData();



    //Clear frmAddAluminium

    txtOnUnitCost.Text = "";

    txtSalesMan.Text = "";

    txtSumPrice.Text = "";

    txtWeight.Text = "";

    }

    }

    }


  2. #2
    کاربر دائمی آواتار hdv212
    تاریخ عضویت
    آبان 1384
    محل زندگی
    قم
    پست
    1,727

    نقل قول: Error: the variable named ‘@Id’ has already been declared. Variable names must be uniqe wit

    متوجه نشدم objCommand رو در کجا تعریف کردی، به هر صورت از این کد قبل از اضافه کردن پارامترها به objCommand استفاده کن :
    objCommand.Parameters.Clear();

  3. #3
    کاربر دائمی
    تاریخ عضویت
    خرداد 1382
    محل زندگی
    تهران
    پست
    424

    نقل قول: Error: the variable named ‘@Id’ has already been declared. Variable names must be uniqe wit

    شما در حقیقت اومدین objCommand رو در داخل کلاس به صورت تعریف و همونجا new کردین. وقتی کار اضافه کردن تموم میشه، objCommand همچنان باقی مونده و مقادیر خودش رو داره. بهتره new کردن objCommand رو در داخل روالتون انجام بدین

  4. #4

    نقل قول: Error: the variable named ‘@Id’ has already been declared. Variable names must be uniqe wit

    مرسی naeeme وhdv212 از راهنماییتون.
    مشکل با کمک شما حل شد.

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

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