0
  1. 編集のために別の行から datagridview の行をインポートしています。
  2. 値を編​​集します。
  3. 値を保存します。しかし、ユーザーが PRIMARY KEY TABLE である列を変更することは望ましくありません。

私は主キー列の名前を持っています

string sql = "SELECT ColumnName = col.column_name FROM information_schema.table_constraints tc INNER JOIN information_schema.key_column_usage col ON col.Constraint_Name = tc.Constraint_Name AND col.Constraint_schema = tc.Constraint_schema WHERE tc.Constraint_Type = 'Primary Key' AND col.Table_name = '" + _lstview_item + "'";
            SqlConnection conn2 = new SqlConnection(cc.connectionString(cmb_dblist.Text));
            SqlCommand cmd_server2 = new SqlCommand(sql);
            cmd_server2.CommandType = CommandType.Text;
            cmd_server2.Connection = conn2;
            conn2.Open();
            string ColumnName = (string)cmd_server2.ExecuteScalar();
            //string ColumnName = (string)cmd_server2.ExecuteScalar();
            conn2.Close();

そして、私は以下のように更新ステートメントを作成しています

 u.Append("UPDATE ");
                    u.Append("[Ref].[");
                    u.Append(_lstview_item);
                    u.Append("]");
                    u.Append("SET ");
                    for (i = 0; i < col_no; i++)
                    {
                        u.Append(col_name);
                        u.Append(" = ");
                        u.Append("'");
                        u.Append(col_value);
                        u.Append("'");
                    }

この状況でユーザーが主キー列の値を変更しているかどうかを検出するにはどうすればよいですか?

4

1 に答える 1

0

そのように SQL ステートメントを連結しないでください。

代わりに、SQL パラメータを使用して個々のプロパティを設定します。

このサンプルでの SQLParameters の使用方法の例を参照してください: http://www.dotnetperls.com/sqlparameter

お役に立てれば!

于 2013-08-22T09:58:02.350 に答える