SqlCeDataReader параметр ordinal = 1 - PullRequest
1 голос
/ 28 мая 2011

I порядковый номер параметра = 1 ошибка в этом коде. Кто-нибудь может объяснить это в этом контексте? dbCon верен, поскольку я могу вставить данные в базу данных, просто пытаясь вернуть их. нет.

              if (dbCon.State == ConnectionState.Closed)
            {
                dbCon.Open(); ;
            }

            SqlCeParameter vetidfromdropbox = new SqlCeParameter("@vetidfromdropbox", SqlDbType.Int);
            vetidfromdropbox.Value = 2;

            SqlCeCommand mySQLCommand = new SqlCeCommand("SELECT * FROM vets WHERE vetID = @vetidfromdropbox", dbCon);

            SqlCeDataReader rdata = mySQLCommand.ExecuteReader();


            if(rdata.Read()){

                    editNameTextbox.Text = (String)rdata["vetName"];
                    editSurnameTextbox.Text = (String)rdata["vetSurname"];
                    editCompanyNameTextbox.Text = (String)rdata["vetCompanyName"];
                    editPractiseAddTextBox.Text = (String)rdata["vetPractiseAddress"];
                    editMobileTextbox.Text = (String)rdata["vetMobile"];
                    editOtherTextbox.Text = (String)rdata["vetOther"];
                    editNotesTextbox.Text = (String)rdata["vetNotes"];

                }else{
                        MessageBox.Show(" There has been an error with Read() ");                               
                }



            if (dbCon.State == ConnectionState.Open)
            {
                dbCon.Close();
            }

1 Ответ

1 голос
/ 28 мая 2011

Вы не добавили параметр в команду SQL:

var vetidfromdropbox = new SqlCeParameter("@vetidfromdropbox", SqlDbType.Int);
vetidfromdropbox.Value = 2;

var mySQLCommand = new SqlCeCommand(
    "SELECT * FROM vets WHERE vetID = @vetidfromdropbox", dbCon);
mySQLCommand.Parameters.Add(vetidfromdropbox);

Вы можете использовать AddWithValue для упрощения синтаксиса:

var mySQLCommand = new SqlCommand(
    "SELECT * FROM vets WHERE vetID = @vetidfromdropbox", dbCon);
mySQLCommand.Parameters.AddWithValue("vetidfromdropbox", 2);

Примечание: используйте using в вашем sql-соединении и команде, чтобы гарантировать удаление и упростить код.

...