asp.NET C# - 使用Oracle命令的ExecuteNonQuery()问题

时间:2012-09-17 10:36:28

标签: c# oracle

我遇到了这个问题,我使用的是Oracle命令和参数。我的代码中有数百个其他查询,但只是这个查询无法执行。这是一个非常简单的更新查询,它可以在SQL Navigator中运行,因为我尝试过它。

在代码中,执行非查询方法似乎冻结了,我在我的网页上得到“等待http:// localhost:8081 / MaintainUserProfile.aspx”。

我感谢你的帮助,因为我浪费了几个小时,而且在这个阶段我一无所知。

如果我要说明更多信息,请告诉我。

下面的代码(请注意我使用oracle参数,但在这种情况下我只是使用普通字符串来调试问题,oracle参数也会发生同样的事情,它会在执行非查询时卡住):

string sqlQuery = @"UPDATE schema_name.table_name
                    SET
                       officer_name = '" + fullName + 
                       "', channel_code = " + channelCode +
                       ", male_female_ind = '" + maleFemale + 
                       "', user_status_code = '" + userStatusCode +
                       "', identity_number = '" + idNumber +
                       "', extension_number = " + extensionNumber +
                       " WHERE user_profile_id = " + userProfileID;

 OracleCommand oraCommand2 = new OracleCommand(sqlQuery, db);
 oraCommand2.ExecuteNonQuery();

2 个答案:

答案 0 :(得分:1)

您可以尝试使用此代码 - 基于AddWithValue

oraCommand2.CommandText="UPDATE schema_name.table_name SET
                       officer_name = :fullName , channel_code = :channelCode, 
                       male_female_ind = :male_female_ind, user_status_code = :user_status_code,
                       identity_number = :idNumber, extension_number = :extensionNumber 
                       WHERE user_profile_id = :userProfileID";

oraCommand2.Parameters.AddWithValue(":fullName", fullName);
oraCommand2.Parameters.AddWithValue(":channelCode", channelCode);
oraCommand2.Parameters.AddWithValue(":male_female_ind", male_female_ind );
oraCommand2 .Parameters.AddWithValue(":user_status_code", user_status_code );
oraCommand2 .Parameters.AddWithValue(":identity_number", identity_number );
oraCommand2 .Parameters.AddWithValue(":extension_number", extension_number );
oraCommand2 .Parameters.AddWithValue(":user_profile_id", user_profile_id );

链接:http://msdn.microsoft.com/fr-fr/library/system.data.oracleclient.oracleparametercollection.addwithvalue.aspx

答案 1 :(得分:0)

Kenneth在此Post中回答了这个问题,这可能是由于SQLDeveloper中的未提交操作(或任何其他未提交的待定数据库更改)。