2
ALTER PROCEDURE InsertHash
    @FileName varchar(max),
    @Hash  varchar(max)
AS
UPDATE tabletest 
SET deneme1 = @Hash, deneme2 =@FileName

これは私のストアド プロシージャで、いくつかのデータを送信します

while (rdr.Read())
{
    string filename = @"\\" + rdr.GetString(3);
    filename = System.IO.Path.Combine(filename, rdr.GetString(2));
    filename = System.IO.Path.Combine(filename, rdr.GetString(1));
    computeHashh1 abc = new computeHashh1();
    Console.WriteLine(abc.computeHash(filename));
    SqlCommand myCommand2 = new SqlCommand("InsertHash", myConnection);
    myCommand2.CommandType = CommandType.StoredProcedure;
    SqlParameter param = new SqlParameter("@FileName", filename);
    myCommand2.Parameters.Add(param);
    SqlParameter param2 = new SqlParameter("@Hash", abc.computeHash(filename));
    myCommand2.Parameters.Add(param2);
}

コードを実行してもテーブルが更新されない

4

2 に答える 2

6

あなたが持っていないことの1つmyCommand2は...それを実行することです:

myCommand2.ExecuteNonQuery();

うーん、それも捨てた方がいいのかな…

while (rdr.Read())
{
    // ... blah
    using(var myCommand2 = new SqlCommand("InsertHash", myConnection))
    {
        // setup parameters etc
        myCommand2.ExecuteNonQuery();
    }
}

または、それが面倒だと思われる場合...いくつかの「おしゃれな」愛:

myConnection.Execute("InsertHash", new {
        FileName = filename,
        Hash = abc.computeHash(filename)
    }, commandType: CommandType.StoredProcedure);
于 2012-07-24T08:43:16.753 に答える
3

コマンドを実行していません:

myCommand2.ExecuteNonQuery()
于 2012-07-24T08:43:20.793 に答える