private void button8_Click_1(object sender, EventArgs e)
        {
            OleDbConnection conn = new OleDbConnection(DBConn.Sqlconn_a1+Application.StartupPath+"\\conf.mdb");
            OleDbCommand cmd = conn.CreateCommand();
            cmd.CommandText = @"select * from Task where task_type=test";
            cmd.CommandType = CommandType.Text;
            conn.Open();
            OleDbDataAdapter myda = new OleDbDataAdapter(cmd.CommandText,conn);
            DataSet myds = new DataSet();
            myda.Fill(myds,"table1");
            dataGridView3.DataSource = myds.Tables["table1"];            conn.Close();
        }
提示:至少一个参数没有被指定值。注:DBConn.Sqlconn_a1 这个是静态变量
public static string Sqlconn_a1 = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=";
数据库肯定可以访问的,是一个access
cmd.CommandText=@"select * from Task where task_id=1";
这时是正常的,
task_id是自动编号长整型的
而task_type是文本
是不是这样不能比较,他们本身就不相等?

解决方案 »

  1.   

    cmd.CommandText = @"select * from Task where task_type=''test''";
      

  2.   

    cmd.CommandText = @"select * from Task where task_type='test'";
      

  3.   

    这种问题以后把sql语句输出到文件一目了然。
      

  4.   

    谢楼上....晕哦,我以为""这里面就无需再用''注明String字符了.
      

  5.   

    sql输出到文本是:
    select * from Task where task_type=test
    应该要这样才对
    select * from Task where task_type='test'
    是我太大意了,多谢abcjun188