0

我在一列中有一个数组:

[empty, true, true, empty × 2, true, true]
1: true
2: true
5: true
6: true
length: 7

我想更新 If 1: true then type_1 = true, 2:true then type_1 = true, 5:true then type_5 = true, 6:true then type_6 = true。

但是我不知道该怎么做,有人可以帮我吗,或者有没有更有效或更简单的方法来做到这一点?我试过了:

public bool UpdateType(int id, Array selectedTypes)
{
    bool res = false;
    string sqlstr = "";

    try
    {
        using (conn = new SqlConnection(CommonDA.GetConnectionString()))
        {
            conn.Open();
            trans = conn.BeginTransaction();

            try
            {
                SqlCommand cmd = conn.CreateCommand();
                sqlstr = @"Update Goal_Type set type_1 = @type_1,
                                   type_2 = @type_2,
                                   type_3 = @type_3,
                                   type_4 = @type_4,
                                   type_5 = @type_5,
                                   type_6 = @type_6,
                                   where id = @id ";
                cmd.CommandText = sqlstr;
                cmd.Transaction = trans;

                cmd.Parameters.AddWithValue("@id", id);
                cmd.Parameters.AddWithValue("@type_1", selectedTypes[1]);
                cmd.Parameters.AddWithValue("@type_2", selectedTypes[2]);
                cmd.Parameters.AddWithValue("@type_3", selectedTypes[3]);
                cmd.Parameters.AddWithValue("@type_4", selectedTypes[4]);
                cmd.Parameters.AddWithValue("@type_5", selectedTypes[5]);
                cmd.Parameters.AddWithValue("@type_6", selectedTypes[6]);

                cmd.ExecuteNonQuery();

                trans.Commit();
                conn.Close();
                res = true;
            }
            catch (Exception Err)
            {
                trans.Rollback();
                CommonLB.SystemError("UpdateType Fall", Err.Message);
                CommonLB.SystemError("Data", "SQL:" + sqlstr);
            }
        }
    }
    catch (Exception Err)
    {
        throw new ApplicationException(Err.Message, Err);
    }

    return res;
}
4

0 回答 0