Параметры OleDB

У меня есть эта база данных доступа, у меня есть ddl для имени штата и ddl для года. У меня есть представление сетки, в котором я хотел бы передать значение раскрывающегося списка состояний в предложение where. Очевидно, если бы я мог использовать sql с именованными параметрами, я бы так и сделал, но это то, с чем я застрял, и не уверен, как правильно его форматировать.

выпадающий список имеет имя ddlStates. В параметрах, которые я пробовал

mycommand.Parameters.Add("@ddlStates")

вот набор данных

        public DataSet GetData()
    {
        DataSet ds;
        using (OleDbConnection myConnString = new OleDbConnection())
        {
            myConnString.ConnectionString = connString;
            using (OleDbCommand myCommand = new OleDbCommand())
            {
                myCommand.CommandText = "select * from tblTest where location = ?";
                myCommand.Parameters.Add();
                myCommand.Connection = myConnString;



                using (OleDbDataAdapter da = new OleDbDataAdapter())
                {
                    da.SelectCommand = myCommand;
                    ds = new DataSet();
                    da.Fill(ds, "Grades");
                }
            }
            return ds;
        }
    }//ends get data dataset

person Troy Bryant    schedule 21.02.2014    source источник


Ответы (2)


1. вам нужно открыть соединение

2. вы можете добавить параметр следующим образом

public DataSet GetData()
{
    DataSet ds;
    using (OleDbConnection conn = new OleDbConnection(connString))
    {
        string query= "select * from tblTest where location = ?";            
        using (OleDbCommand myCommand = new OleDbCommand(query, conn))
        {

            myCommand.Parameters.AddWithValue("@ddlStates", <your value>);
            conn.Open();

            using (OleDbDataAdapter da = new OleDbDataAdapter(myCommand, conn))
            {
                ds = new DataSet();
                da.Fill(ds, "Grades");
                return ds;
            }
        }

    }
}
person T.S.    schedule 21.02.2014

myCommand.Parameters.AddWithKey("location", this.ddlStates.SelectedValue);

Это предполагает, что тип данных столбца location является текстовым. Если это числовое значение или что-то еще, сначала преобразуйте SelectedValue в соответствующий тип данных.

person jmcilhinney    schedule 21.02.2014