1

I want to insert multiple data to database by code like this :

protected void btnInsert_Click(object sender, EventArgs e)
        {
            int i = 0;
            gvHitung.DataBind();
            int Loop = gvHitung.Rows.Count;
            while (i < Loop)
            {
                DataView dv = (DataView)sdsHitung.Select(DataSourceSelectArguments.Empty);
                DataRowView drv = dv[i];
                string Kd_Modul = drv["Kd_Modul"].ToString();
                sdsDataNilai.InsertParameters.Add("Binusian_Id",tbBinId.Text);
                sdsDataNilai.InsertParameters.Add("Kd_Jurusan",tbKdJur.Text);
                sdsDataNilai.InsertParameters.Add("Angkatan",tbAngkatan.Text);
                sdsDataNilai.InsertParameters.Add("Kd_Modul",Kd_Modul);
                sdsDataNilai.Insert();
                i++;
            }
            gvDataNilai.DataBind();
        }

but finally got error message

"The variable name '@Binusian_Id' has already been declared. Variable names must be unique within a query batch or stored procedure."

when I redebug the program, I just saw I record saved. do you have any idea?

1 Answer 1

1

Because in every iteration in your while statement, you try add these parameters one by one again.

It is ok in the first iteration because it doesn't have any parameter at the begining. But in second iteration, your command already has these parameters. That's why you get error like;

Hey buddy, your command has already have a parameter called @Binusian_Id, why do you want to add the same parameter again?

You need clear your parameters with SqlParameterCollection.Clear method before you add them again like;

sdsDataNilai.InsertParameters.Clear();
sdsDataNilai.InsertParameters.Add("Binusian_Id",tbBinId.Text);
sdsDataNilai.InsertParameters.Add("Kd_Jurusan",tbKdJur.Text);
sdsDataNilai.InsertParameters.Add("Angkatan",tbAngkatan.Text);
sdsDataNilai.InsertParameters.Add("Kd_Modul",Kd_Modul);
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.