2013-05-05 82 views
0

我想创建我的第一个SQL参数使用C#命令定义的,和我有一个错误:SQL参数并没有命令文本的命令对象错误

“没有命令文本为COMMANDE对象定义”这里是我的代码:

string maRequete = "UPDATE " + strNomTable + " set everelance = @everelance," 
    + "evedate = @evedate ," 
    + "evedatemo = @evedatemo ," 
    + "evetype = @evetype ," 
    + "evedes = @evedes ," 
    + "evecli = @evecli ," 
    + "evestatut = @evestatut ," 
    + "eveusermo = @eveusermo ," 
    + "eveinterv = @eveinterv where eveNum = " + '"' + strEvtNumeroString.ToString() + '"'; 

OleDbCommand DbCommand = new OleDbCommand(maRequete); 

DbCommand.Parameters.Add("@everelance", OleDbType.Date); 
DbCommand.Parameters.Add("@evedate", OleDbType.Date); 
DbCommand.Parameters.Add("@evedatemo", OleDbType.Date); 
DbCommand.Parameters.Add("@evetype", OleDbType.VarChar); 
DbCommand.Parameters.Add("@evedes", OleDbType.VarChar); 
DbCommand.Parameters.Add("@evecli", OleDbType.VarChar); 
DbCommand.Parameters.Add("@evestatut", OleDbType.VarChar); 
DbCommand.Parameters.Add("@eveusermo", OleDbType.VarChar); 
DbCommand.Parameters.Add("@eveinterv", OleDbType.VarChar); 

DbCommand.Parameters["@everelance"].Value = m_dDateRelance.Date.ToString("d", m_UsCulture); 
DbCommand.Parameters["@evedate"].Value = m_dDate.ToString(m_UsCulture); 
DbCommand.Parameters["@evedatemo"].Value = m_dDateModificaton.ToString(m_UsCulture); 
DbCommand.Parameters["@evetype"].Value = m_strEvtType.ToString().Trim(); 
DbCommand.Parameters["@evedes"].Value = m_strDesignation.ToString().Trim(); 
DbCommand.Parameters["@evecli"].Value = m_strCodeClient.ToString().Trim(); 
DbCommand.Parameters["@evestatut"].Value = ""; 
DbCommand.Parameters["@eveusermo"].Value = m_strUserModification; 
DbCommand.Parameters["@eveinterv"].Value = m_strCodeIntervenant.ToString().Trim(); 

try 
{ 
    string strStringConnect = @"Provider=vfpoledb.1;Data Source=" + m_strDirectoryDBF + @"\" + strDbfFile + ".dbf;Collating Sequence=general"; 
    OleDbConnection DbConnection = new OleDbConnection(strStringConnect); 


    DbConnection.Open(); 
    DbCommand.Connection = DbConnection; 


    DbCommand = DbConnection.CreateCommand(); 

    DbCommand.ExecuteNonQuery(); 
    return "O"; 
} 
catch (Exception Ex) 
{ 
    return Ex.Message; 
} 

为ExecuteNonQuery抛出异常枝条的:错误“没有命令文本为命令对象定义”。

这里是我的要求:(在调试模式):

UPDATE ZZAg7eve set everelance = @everelance, 
evedate = @evedate , 
evedatemo = @evedatemo , 
evetype = @evetype , 
evedes = @evedes , 
evecli = @evecli , 
evestatut = @evestatut , 
eveusermo = @eveusermo , 
eveinterv = @eveinterv where eveNum = \"00000003  \" 

任何人有一些想法?

非常感谢,

最好的问候,

Nixeus

+1

我不知道它是否相关,但为什么你没有使用“where”部分的参数?通常,值是使用单引号而不是双引号指定的,但是您最好还是使用参数。 – 2013-05-05 11:58:03

回答

1

删除此行:DbCommand = DbConnection.CreateCommand();

你已经有一个命令,没有必要建立一个新的。

+0

Doh - 甚至没有那么远:) – 2013-05-05 12:00:03

+0

非常感谢!错误!我现在需要解决一个语法错误:D – 2013-05-05 12:19:50