在C#中获取无效参数

时间:2014-09-25 08:07:49

标签: c# oledbconnection

void Fillcombo()
    {
        OleDbConnection cn = new OleDbConnection("Provider = Microsoft.ACE.OLEDB.12.0;Data Source=Library.accdb");
        OleDbCommand cmd = new OleDbCommand(@"SELECT * FROM Books", cn);
        cmd.Connection = cn;

        OleDbDataReader dr;
        try
        {
            cn.Open();
            dr = cmd.ExecuteReader();
            while (dr.Read())
            {
                string b = dr.GetString("book");//This is the line where im getting an error
                cboProgramming.Items.Add(b);
            }
        }
        catch (Exception ex)
        {
            MessageBox.Show("f");
        }
    }

3 个答案:

答案 0 :(得分:4)

OleDbDataReader.GetStringint作为参数,并返回string值。

答案 1 :(得分:1)

    // Summary:
    //     Gets the value of the specified column as a string.
    //
    // Parameters:
    //   ordinal:
    //     The zero-based column ordinal.
    //
    // Returns:
    //     The value of the specified column.
    //
    // Exceptions:
    //   System.InvalidCastException:
    //     The specified cast is not valid.
    public override string GetString(int ordinal);

你应该传递一个int。

答案 2 :(得分:1)

你可能想要更像的东西:

string b = dr.GetString(dr.GetOrdinal("book"));

作为GetString()方法(如GetInt32和所有其他方法)获取列索引 - 可以使用GetOrdinal方法返回