Отправить данные с помощью SqlAdapter - PullRequest
0 голосов
/ 25 мая 2019

У меня есть метод DataSet, который получает строку типа sql:

 public DataSet GetDataSet(string sql, string TableName)
        {
            this._Errors = false;
            SqlDataAdapter da = new SqlDataAdapter(sql.ToString(), this.dbconn);
            da.SelectCommand.CommandTimeout = 0;
            DataSet ds = new DataSet();
            try
            {
                da.Fill(ds, TableName);
                return ds;
            }
            catch (SqlException e)
            {
                this.HandleSQLError(e, "GetDataSet", sql);
                return null;
            }
        }

Это работает правильно, но теперь я хочу отправить DataTable, чтобы получить как Table Variable в sql

сSqlCommand очень прост:

SqlCommand cmd = new SqlCommand(sprocName, this.dbconn);

    cmd.Parameters.Add(new SqlParameter(customerTypeTableName, SqlDbType.Structured));
    cmd.Parameters[customerTypeTableName].Value = customerTypeList;

Как я могу изменить то же самое с помощью метода SqlAdapter?Привет

1 Ответ

0 голосов
/ 26 мая 2019

IMO, вы должны написать новую функцию.Нет необходимости использовать DataAdapter.Объект типа SqlCommand вполне достаточно, как показано в следующем фрагменте.

    comm.Parameters.AddWithValue("@tvpEmails", dt); // dt is your DataTable
// your UDDT type should exist on your SQL instance under UDDT types
    comm.Parameters[comm.Parameters.Count - 1].TypeName = "your UDDT type";
    comm.Parameters[comm.Parameters.Count - 1].SqlDbType = SqlDbType.Structured;
    comm.ExecuteNonQuery();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...