请教,OleDB的时候,sql中参数的格式应该怎么写呢?这样些vs2005报错误
insert into table1(t1, t2, t3) values(@t11, @t22, @t33)cmd.parameters.add("@t11", OleDbType.integer);
cmd.parameters.add("@t22", OleDbType.Varchar);
cmd.parameters.add("@t33", OleDbType.integer);错误是
必须声明标量变量 \"@t11\"谢谢

解决方案 »

  1.   

    其实很久以前用2003的时候我就试过这个问题
    将所有的@...都换成?
    然后添加参数的时候用索引引用
    但是就没有办法不用索引引用吗???最重要的是MSDN的例子里用的不是索引,难道MSDN写错了??而且2003写错了,2005又写错了?这是MSDN提供例子的原文
    public DataSet GetDataSetFromAdapter(
        DataSet dataSet, string connectionString, string queryString)
    {
        using (OleDbConnection connection =
                   new OleDbConnection(connectionString))
        {
            OleDbDataAdapter adapter =
                new OleDbDataAdapter(queryString, connection);        // Set the parameters.
            adapter.SelectCommand.Parameters.Add(
                "@CategoryName", OleDbType.VarChar, 80).Value = "toasters";
            adapter.SelectCommand.Parameters.Add(
                "@SerialNum", OleDbType.Integer).Value = 239;        // Open the connection and fill the DataSet.
            try
            {
                connection.Open();
                adapter.Fill(dataSet);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            // The connection is automatically closed when the
            // code exits the using block.
        }
        return dataSet;
    }
      

  2.   

    如果用?就必须用索引添加参数
    但是MSDN里明明是用@....引用的