Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# FROM子句的语法错误_C#_Sql - Fatal编程技术网

C# FROM子句的语法错误

C# FROM子句的语法错误,c#,sql,C#,Sql,这是我认为有效的代码,但它继续在我的FROM子句中给我一个语法错误。有人能帮我理解我错过了什么吗?如果没有try\catch,它将突出显示行int result=(int)cmd.ExecuteScalar() 代替USER将[USER]作为保留字写入 根据OleDbCommand不支持命名参数,请参见保留字列表 OLE DB.NET提供程序不支持用于传递的命名参数 由调用的SQL语句或存储过程的参数 CommandType设置为Text时的OleDbCommand。在这种情况下 必须使用问号(

这是我认为有效的代码,但它继续在我的
FROM
子句中给我一个语法错误。有人能帮我理解我错过了什么吗?如果没有
try\catch
,它将突出显示行
int result=(int)cmd.ExecuteScalar()


代替
USER
[USER]
作为保留字写入

根据OleDbCommand不支持命名参数,请参见保留字列表

OLE DB.NET提供程序不支持用于传递的命名参数 由调用的SQL语句或存储过程的参数 CommandType设置为Text时的OleDbCommand。在这种情况下 必须使用问号(?)占位符。例如:

因此,OLEDBPParameter对象添加到OLEDBPParameterCollection的顺序必须直接对应于命令文本中参数的问号占位符的位置


所以参数的顺序很重要。

您得到的实际异常消息是什么?太棒了,谢谢您的帮助!一旦它允许我,我将标记这个答案。
string constring = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\jwhite\Documents\TrainingDB.accdb";
string cmdText = "SELECT COUNT(*) FROM USER WHERE Username=@p1 AND [Password]=@p2";
using (OleDbConnection con = new OleDbConnection(constring))
using (OleDbCommand cmd = new OleDbCommand(cmdText, con))
{
   try
   {
      con.Open();
      cmd.Parameters.AddWithValue("@p1", textBox1.Text);
      cmd.Parameters.AddWithValue("@p2", textBox2.Text);
      int result = (int)cmd.ExecuteScalar();
      if (result > 0)
      {
         groupBox1.Visible = false;
         groupBox2.Visible = true;
         string commandText = "SELECT RIGHTS FROM USER WHERE Username=@p1 and [Password]=@p2";
         using (OleDbCommand command = new OleDbCommand(commandText, con))
         {
            command.Parameters.AddWithValue("@p1", textBox1.Text);
            command.Parameters.AddWithValue("@p2", textBox2.Text);
            string query = (string)command.ExecuteScalar();
            {
               if (query == "Administrator")
               {
                  toolStripMenuItem59.Enabled = true;
                  administratorToolStripMenuItem1.Enabled = true;
                  administratorToolStripMenuItem3.Enabled = true;
                  administratorToolStripMenuItem4.Enabled = true;
                  administratorToolStripMenuItem5.Enabled = true;
                  administratorToolStripMenuItem2.Enabled = true;
                  administratorToolStripMenuItem6.Enabled = true;
                  toolStripMenuItem92.Enabled = true;
                  toolStripMenuItem108.Enabled = true;
               }
            }
         }
      }
      else
         MessageBox.Show("Invalid Credentials, Please Try Again");
   }

   catch (Exception ex)
   {
      MessageBox.Show("Failed due to " + ex.Message);
   }
}
SELECT * FROM Customers WHERE CustomerID = ?