c# доступ к значению обновления базы данных - PullRequest
0 голосов
/ 20 апреля 2020

Я попытался обновить значение данных, например

 OleDbConnection baglanti = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data 
 Source=.\botbase.accdb");
  private void metroButton4_Click(object sender, EventArgs e)
        {
            baglanti.Open();
            OleDbCommand komut = new OleDbCommand("Update TBL_BOT set botname=@p1, botpass=@p2,botcha=@p3 where botid = @p4 ", baglanti);
            komut.Parameters.AddWithValue("@p4", metroTextBox6.Text);
            komut.Parameters.AddWithValue("@p1", metroTextBox3.Text);
            komut.Parameters.AddWithValue("@p2", metroTextBox4.Text);
            komut.Parameters.AddWithValue("@p3", metroTextBox5.Text);
            komut.ExecuteNonQuery();
            baglanti.Close();



        }

, когда я его запустил. Существует ошибка, подобная этой

enter image description here

Ответы [ 3 ]

0 голосов
/ 20 апреля 2020

Попробуйте изменить порядок параметров с @ p1 на @ p4:

static void Main(string[] args)
{
    using (OleDbConnection baglanti = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\tomas.paul\Documents\botbase.accdb"))
    using (OleDbCommand komut = new OleDbCommand("Update TBL_BOT set botname=@p1, botpass=@p2,botcha=@p3 where botid = @p4", baglanti))
    {
        baglanti.Open();
        komut.Parameters.AddWithValue("@p1", "parameter 1");
        komut.Parameters.AddWithValue("@p2", "parameter 2");
        komut.Parameters.AddWithValue("@p3", "parameter 3");
        komut.Parameters.AddWithValue("@p4", "1");
        komut.ExecuteNonQuery();
        baglanti.Close();
    }
}

Это работает для меня. Я добавил код выполнения в рекомендуемое использование блоков.

0 голосов
/ 21 апреля 2020

да, спасибо всем за потраченное время

0 голосов
/ 20 апреля 2020

Возможно, вам потребуется передать тип данных. Как то так:

      public  AddressVerify AddVerify(ref AddressVerify thisAddress)
        {
            using (SqlConnection connection = new SqlConnection(connStr))
            {
                SqlCommand cmd = new SqlCommand();
                cmd.CommandText = "verifyAddress";
                cmd.Parameters.Add("@City", SqlDbType.VarChar).Value = thisAddress.city;
                cmd.Parameters.Add("@State", SqlDbType.VarChar).Value = thisAddress.state;
                cmd.Parameters.Add("@zipCode", SqlDbType.VarChar).Value = thisAddress.zipCode;
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Connection = connection;
                connection.Open();
                SqlDataReader reader = cmd.ExecuteReader();
                while (reader.Read())
                {
                    thisAddress.Status = (string)(reader["Status"]);
                }//while
                reader.Close();
            }//using
            return thisAddress;
        }//AddVerify```


...