我很喜欢。
我正在尝试使用以下代码加载数据:
SqlConnection con = new SqlConnection(Login.conectData);
con.Open();
DataSet dsFabricantes = new DataSet();
SqlDataAdapter daFabricantes = new SqlDataAdapter("SELECT TOP 100 * FROM
Fabricantes", con);
dsFabricantes.Clear();
//prencher a tabela
daFabricantes.Fill(dsFabricantes, "Fabricantes");
tabelaFabricantes.DataSource = dsFabricantes;
tabelaFabricantes.DataMember = "Fabricantes";
//para mudar o que está escrito no cabeçalho das colunas
tabelaFabricantes.Columns[1].HeaderCell.Value = "Nome do
Fabricante";
tabelaFabricantes.Columns[2].HeaderCell.Value = "Observações";
con.Close();
tabelaFabricantes.ClearSelection();
我想创建一个按钮以在我的datagridView中加载更多的寄存器。该应用程序的加载我只更改100个寄存器。我的问题是:
如何在onClickbutton上添加一个按钮,我的dataGrideView,加载更多100个寄存器等?
小帮助 谢谢 布鲁奥里·何塞
答案 0 :(得分:0)
您需要动态调整SqlDataAdapter()调用。
首先在page / formOnLoad方法上设置一些全局变量
global int startRow = '1';
global int maxColRank = testMaxRows();
#set left button active = false
leftButton.Active = false;
为此,请分别对DataGridViewLoader进行分类,以不接受任何参数。将类命名为mySqlGridViewLoaderClass() 在本课程的开头输入以下值:
string MaximumRows = '100';
string StartRowIndex = StartRow.ToString();
在此DataGridViewLoader的SQL连接器中,使用类似于
的查询SELECT colRank, col1, col2
FROM
(SELECT col1, col2,
ROW_NUMBER() OVER(ORDER BY col2 DESC) AS colRank
FROM Fabricantes
) AS rowNumQuery
WHERE colRank > <i>StartRowIndex</i> AND
colRank <= (<i>StartRowIndex</i> + <i>MaximumRows</i>
)
您的类应执行DataGridView加载操作,然后为MAX(colRank)返回第二个标量值。
#new connector
SqlDataAdapter daFabricantes = new SqlDataAdapter("SELECT Max(colRank) FROM
(SELECT max(colRank)
FROM
(SELECT col1, col2,
ROW_NUMBER() OVER(ORDER BY col2 DESC) AS colRank
FROM Fabricantes
) AS rowNumQuery
WHERE colRank > <i>StartRowIndex</i> AND
colRank <= (<i>StartRowIndex</i> + <i>MaximumRows</i>
))", con2);
int mr = (Int32) con2.ExecuteScalar();
return mr;
对第二个SQL连接器加载程序进行分类,以测试最大行数并返回标量值。将类命名为testMaxRows() 在sql连接器中,使用类似以下查询:
Select count(col1) DIST from fabricantes;
将计数返回到tr变量。 maxRows类的最后两行应为:
int tr = (Int32) con.ExecuteScalar();
return tr;
在表单设计器中,为“ <”和“>”创建一个按钮 将<按钮设置为无效。 >按钮处于活动状态
在“ <” ButtonOnClick()事件中:
rightButton.Active = true;
if (StartRow != '1')
{
StartRow -= 100;
# your class expects a return value, so we'll initialize one
int mr = (Int32) mySqlGridViewLoaderClass();
if (StartRow == 1)
{
leftButton.Active = false;
}
}
在“>” ButtonOnClick()事件中:
leftButton.Active = true;
StartRow += 100;
int maxRank = (Int32) mySqlGridViewLoaderClass();
if ( maxRank >= maxColRank)
{
rightButton.Active = false;
}