powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / как получить значение поля ID если его не отображать ?
4 сообщений из 4, страница 1 из 1
как получить значение поля ID если его не отображать ?
    #35749719
pionersurg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
При получении данных отбражаем в DataGridView1 примерно так:

using (cn = new SqlConnection(Form1.ConnectionString))
{
try
{
cn.Open();
DataSet ds = new DataSet();
string zapros = "select field1, field2, fieldID from table1";
SqlCommand select_command = new SqlCommand(zapros, cn);
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = select_command;
da.Fill(ds);
DataGridView1.DataSource = ds.Tables[0];
}
catch (SqlException ex) { MessageBox.Show(ex.Message.ToString()); }
}

В дальнейшем необходимо получить значение поля fieldID, чтобы использовать в sql запросе. Сейчас получаю значение так:
Convert.ToInt16(DataGridView1.CurrentRow.Cells["fieldID"].Value)
Но хотелось бы его не отображать fieldID. Как тогда можно будет на него сослаться.
Поделитесь примером ?
...
Рейтинг: 0 / 0
как получить значение поля ID если его не отображать ?
    #35750553
Фотография Диез
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pionersurgПри получении данных отбражаем в DataGridView1 примерно так:

using (cn = new SqlConnection(Form1.ConnectionString))
{
try
{
cn.Open();
DataSet ds = new DataSet();
string zapros = "select field1, field2, fieldID from table1";
SqlCommand select_command = new SqlCommand(zapros, cn);
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = select_command;
da.Fill(ds);
DataGridView1.DataSource = ds.Tables[0];
}
catch (SqlException ex) { MessageBox.Show(ex.Message.ToString()); }
}

В дальнейшем необходимо получить значение поля fieldID, чтобы использовать в sql запросе. Сейчас получаю значение так:
Convert.ToInt16(DataGridView1.CurrentRow.Cells["fieldID"].Value)
Но хотелось бы его не отображать fieldID. Как тогда можно будет на него сослаться.
Поделитесь примером ?

Юзать BindingSource.
...
Рейтинг: 0 / 0
как получить значение поля ID если его не отображать ?
    #35752816
pionersurg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
using (cn = new SqlConnection(Form1.ConnectionString))
{
try
{
cn.Open();
DataSet ds = new DataSet();
string zapros = "select field1, field2, fieldID from table1";
SqlCommand select_command = new SqlCommand(zapros, cn);

SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = select_command;
da.Fill(ds);

//создание временного DataSet
DataSet dsTemp = new DataSet();
dsTemp.Tables.Add();
foreach (DataRow row in ds.Tables[0].Rows)
{
dsTemp.Tables[0].Rows.Add();
}
foreach (DataColumn column in ds.Tables[0].Columns)
{
if (column.ColumnName != "fieldID")
{
dsTemp.Tables[0].Columns.Add(column.ColumnName, column.DataType);
}
}
//заполнение временного DataSet данными
foreach (DataColumn column in ds.Tables[0].Columns)
{
if (column.ColumnName != "fieldID")
{
for (int r = 0; r < ds.Tables[0].Rows.Count; r++)
{
dsTemp.Tables[0].Rows[r][column.ColumnName] = ds.Tables[0].Rows[r][column.ColumnName];
}
}
}

BindingSource bs = new BindingSource();
bs.DataSource = dsTemp;
bs.DataMember = dsTemp.Tables[0].TableName;
DataGridView1.DataSource = bs;
}
catch (SqlException ex) { MessageBox.Show(ex.Message.ToString()); }
}

//значение поля fieldID текущей строки получаем так
ds.Tables[0].Rows[bs.Position]["fieldID"]

оно ?
...
Рейтинг: 0 / 0
как получить значение поля ID если его не отображать ?
    #35753721
Фотография Диез
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pionersurg
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
using (cn = new SqlConnection(Form1.ConnectionString))
    {
        try
        {
            cn.Open();
            DataSet ds = new DataSet();
            string zapros = "select field1, field2, fieldID from table1";
            SqlCommand select_command = new SqlCommand(zapros, cn);

            SqlDataAdapter da = new SqlDataAdapter();
            da.SelectCommand = select_command;
            da.Fill(ds);

//создание временного DataSet
            DataSet dsTemp = new DataSet();
            dsTemp.Tables.Add();
            foreach (DataRow row in ds.Tables[0].Rows)
            {
                 dsTemp.Tables[0].Rows.Add();
            }
            foreach (DataColumn column in ds.Tables[0].Columns)
            {
                 if (column.ColumnName != "fieldID") 
                 { 
                 dsTemp.Tables[0].Columns.Add(column.ColumnName, column.DataType);
                 }
            }
//заполнение временного DataSet данными
foreach (DataColumn column in ds.Tables[0].Columns)
{
    if (column.ColumnName != "fieldID")
    {
        for (int r = 0; r < ds.Tables[0].Rows.Count; r++)
        {
            dsTemp.Tables[0].Rows[r][column.ColumnName] = ds.Tables[0].Rows[r][column.ColumnName];
        }
    }
}

            BindingSource bs = new BindingSource();
            bs.DataSource = dsTemp; 
            bs.DataMember = dsTemp.Tables[0].TableName;
            DataGridView1.DataSource = bs;
        }
        catch (SqlException ex) { MessageBox.Show(ex.Message.ToString()); }
    }

//значение поля fieldID текущей строки получаем так
ds.Tables[0].Rows[bs.Position]["fieldID"]

оно ?

Ничего не понял.. Зачем временные датасеты?
У BindingSource есть свойство Current, там и берите нужное значение поля. Все хорошо описано в MSDN.

PS. Как мне оформить свое сообщение?
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / как получить значение поля ID если его не отображать ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]