Как получить значение набора данных - PullRequest
0 голосов
/ 16 февраля 2010

Новое в VB.Net,

Как вставить или выбрать значение набора данных.

    cmd = New SqlCommand("Select * from table1", con)
    ada = New SqlDataAdapter(cmd)
    ds = New DataSet
    ada.Fill(ds)
    cmd = New SqlCommand("Select * from  '" & ds.Tables(0) & "'  ", con)
    mydatatable1.Load(dr3)

Показывалось сообщение об ошибке в '" & ds.Tables(0) & "', я хочу получить значение набора данных

Нужна помощь по коду VB.Net

Ответы [ 4 ]

1 голос
/ 16 февраля 2010

У вас есть разумная идея, пока вы не дойдете до точки, где вы пытаетесь создать вторую SqlCommand. То есть после того, как вы выполните Fill, у вас уже есть данные в таблице. Вы не запускаете другой выбор - вы уже сделали это. Вы просто ссылаетесь на таблицу, которую хотите использовать в наборе данных.

Если вы хотите таблицу данных, вы бы сделали что-то вроде этого (для VB, см. Ниже):

    SqlDataAdapter myAdapter = new SqlDataAdapter(CommandText, con);
    DataSet myDataset = new DataSet();
    myAdapter.Fill(myDataset, "Table");  // "Table" is just a name, it can be anything.
    mydatatable1 = myDataset.Tables[0];  // Get the table

Теперь, если вам не нужна DataTable сама по себе, но вы просто хотите прочитать из запроса, вы должны использовать SqlDataReader:

 cmd = new SqlCommand(CommandText, con);
 // One or more params
 cmd.Parameters.AddWithValue("@paramName", Value);
 SqlDataReader nwReader = cmd.ExecuteReader();

Тогда просто прочитайте из nwReader:

 while (nwReader.Read())
 {
     string field1Val = (string)nwReader["FieldName"];
     etc...
 }

Обновление : я не знаю VB, но вот что я думаю это будет выглядеть так:

cmd = New SqlCommand("Select * from table1", con) 
ada = New SqlDataAdapter(cmd) 
ds = New DataSet 
ada.Fill(ds) 
mydatatable1 = ds.Tables(0);

Вы вполне можете сократить это, чтобы избавиться от дополнительной SqlCommand (при условии, что VB поддерживает этот синтаксис SqlDataAdapater, такой как C #.

ada = New SqlDataAdapter("Select * from table1", con) 
ds = New DataSet 
ada.Fill(ds) 
mydatatable1 = ds.Tables(0);

Удачи ...

0 голосов
/ 04 сентября 2015
   public async Task<ResponseStatusViewModel> GetAll()
        {
            var responseStatusViewModel = new ResponseStatusViewModel();
            var connection = new SqlConnection(EmployeeConfig.EmployeeConnectionString);
            var command = new SqlCommand("usp_GetAllEmployee", connection);
            command.CommandType = CommandType.StoredProcedure;

            try
            {
                await connection.OpenAsync();
                var reader = await command.ExecuteReaderAsync();

                var dataSet = new DataSet();
                dataSet.Load(reader, LoadOption.OverwriteChanges, new string[] { "Employee" });
                reader.Close();
                reader.Dispose();

                var employees = new List<EmployeeModel>();

                if (dataSet.Tables.Count > 0 && dataSet.Tables["Employee"] != null)
                {
                    var employeeTable = dataSet.Tables["Employee"];

                    for (int i = 0; i < employeeTable.Rows.Count; i++)
                    {
                        var employeeRow = employeeTable.Rows[i];

                        employees.Add(new EmployeeModel
                        {
                            EmployeeID = Convert.ToInt32(employeeRow["EmployeeID"]),
                            EmployeeName = Convert.ToString(employeeRow["EmployeeName"]),
                            Address = Convert.ToString(employeeRow["Address"]),
                            GrossSalary = Convert.ToDouble(employeeRow["GrossSalary"]),
                            PF = Convert.ToDouble(employeeRow["PF"]),
                            TotalSalary = Convert.ToDouble(employeeRow["TotalSalary"])
                        });
                    }
                }
                responseStatusViewModel.Data = employees;
                command.Dispose();
                connection.Dispose();

            }
            catch (Exception ex)
            {

                throw ex;
            }

            return responseStatusViewModel;
        }
0 голосов
/ 16 февраля 2010

Я думаю, что вы ищете

cmd = New SqlCommand ("Выбрать * из '" & ds.Tables (0). TableName & "'" con)

cmd = New SqlCommand("Select * from table1", con)
ada = New SqlDataAdapter(cmd)
ds = New DataSet
ada.Fill(ds)
cmd = New SqlCommand("Select * from  '" & ds.Tables(0).TableName & "'  ", con)
mydatatable1.Load(dr3)
0 голосов
/ 16 февраля 2010

вы можете использовать Microsoft Enterprise Library для упрощения этого процесса. эта библиотека - мощная библиотека для работы с наборами данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...