0
ユーザーにSQL Serverデータベースのエントリを更新させることができるはずのaspアプリケーションがあります。私のメソッドでストアドプロシージャを実行すると、データベースに何も起こりません。aspアプリケーションでストアドプロシージャを実行した後にデータベースが更新されない
public void updateFeature(Feature updatedFeature)
{
using (SqlConnection sqlConnection = new SqlConnection(GetConnectionString(updatedFeature.Environment)))
using (SqlCommand sqlCommand = sqlConnection.CreateCommand())
{
sqlCommand.CommandType = CommandType.StoredProcedure;
sqlCommand.CommandText = "usp_UpdateFeature";
sqlCommand.Parameters.AddWithValue("@FeatureName", updatedFeature.FeatureName);
sqlCommand.Parameters.AddWithValue("@FeatureID", updatedFeature.FeatureID);
sqlCommand.Parameters.AddWithValue("@FeatureDescription", updatedFeature.Description);
sqlCommand.Parameters.AddWithValue("@FieldName", updatedFeature.FieldName);
sqlCommand.Parameters.AddWithValue("@OnOffSwitch", updatedFeature.IsOn);
sqlCommand.Parameters.AddWithValue("@ChannelID", updatedFeature.ChannelID);
sqlCommand.Parameters.AddWithValue("@ProductID", updatedFeature.ProductID);
sqlConnection.Open();
int numberOfRowsChanged = sqlCommand.ExecuteNonQuery();
}
}
と私のストアドプロシージャがこの
ALTER PROCEDURE [dbo].[usp_UpdateFeature]
(
@FeatureID int,
@FeatureName varchar(30),
@FeatureDescription varchar(200) = null,
@FieldName varchar(40),
@OnOffSwitch bit,
@ChannelID varchar(3),
@ProductID varchar(2)
)
AS
SET NOCOUNT ON
UPDATE FM_Feature
SET FeatureName = @FeatureName,
FeatureDescription = @FeatureDescription,
FieldName = @FieldName,
OnOffSwitch = @OnOffSwitch,
ProductID = @ProductID,
ChannelID = @ChannelID
WHERE FeatureID = @FeatureID
のように見えるnumberOfRowsChangedパラメータは-1を返しますが、私はすべての例外やエラーを得ることはありません。私が紛失しているか、理解していないものがありますか?
と 'set nocount on;;影響を受ける行の数をカウントしないようにサーバーに指示しているので、-1を返します。データは更新されますか? – TZHX
データが実際に更新されたかどうかをdbで確認しましたか? –
コード(およびストアドプロシージャ)を実行している間にSql Profilerで何を確認しましたか? – Igor