2013-05-05 83 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