在这里处理赋值时,我可以查看从数据库到网格视图的所有数据,但是数据似乎是unsorted,它在DataGridView中显示了我只想要的所有数据,我尝试过的代码是:
private void btnmeritbsit_Click(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection(dbpath);
string query = "select Applicant_no,A_Name,Father_Name,T_Matric,O_Matric,M_Percentage,T_Inter ,O_Inter ,I_Percentage from applicantinfo order by I_Percentage desc";
con.Open();
dataGridView1.ColumnCount = sdr.FieldCount;
SqlCommand cmd = new SqlCommand(query, con);
SqlDataReader sdr = cmd.ExecuteReader();
while (sdr.Read())
{
dataGridView1.Rows.Add(sdr["Applicant_no"], sdr["A_Name"], sdr["Father_Name"], sdr["T_Matric"], sdr["O_Matric"], sdr["M_Percentage"], sdr["T_Inter"], sdr["O_Inter"], sdr["I_Percentage"]);
}
con.Close();
}我是通过datatable和dataAdapter获得整个值的,但是没有任何效果!!卡住了!
// DataTable dtbl = new DataTable();
// sda.Fill(dtbl);
// dataGridView1.DataSource = dtbl;发布于 2020-07-13 14:50:55
在做了几处更改之后,它就可以正常工作了:)
private void btnmeritbscs_Click(object sender, EventArgs e)
{
string dbpath = @"Data Source=DESKTOP-UMA0VFO;Initial Catalog=ApplicationForm;Integrated Security=True";
SqlConnection con = new SqlConnection(dbpath);
string query = "select prgstatus,Applicant_no,A_Name,Father_Name,T_Matric,O_Matric,M_Percentage,T_Inter ,O_Inter ,I_Percentage from applicantinfo where prgstatus like 'bscs' order by I_Percentage desc";
SqlCommand cmd = new SqlCommand(query, con);
con.Open();
SqlDataReader sdr = cmd.ExecuteReader();
dataGridView1.ColumnCount = sdr.FieldCount;
while (sdr.Read())
{
dataGridView1.Rows.Add(sdr["prgstatus"], sdr["Applicant_no"], sdr["A_Name"], sdr["Father_Name"], sdr["T_Matric"], sdr["O_Matric"], sdr["M_Percentage"], sdr["T_Inter"], sdr["O_Inter"], sdr["I_Percentage"]);
}
con.Close();
}发布于 2020-07-13 12:05:39
我在另一个答案里写的,在图片里。这是在使用VB应用程序,但这并不重要,因为步骤是相同的,实际上编写的代码不会超过一行

右键单击“项目”,添加新数据集

右击曲面,添加tableadapter

添加连接字符串,下一步。说吧,下一个

添加一个从表中选择所有内容的查询,其中(id列)= @id

将方法重命名为添加"ByID“。这将是显而易见的原因以后。完成:

右键单击表适配器,添加查询

通过选择“选择返回行的选择”并输入一个按姓氏查找用户的查询:

给新方法起个好名字。完成。保留:

转到窗体设计器,确保数据源工具面板显示(查看菜单)

将用户网格节点从数据源拖到窗体上。

它预先为ID创建了一个文本框,因为这是tableadapter中的第一个查询。我们会把它改成姓。单击按钮,更改其名称,更改它显示的文本。始终确保您的控件名称是最新的和相关的。

您可以看到我也更改了标签,还更改了文本框的名称(您看不到),并且更改了设计器下托盘中所有内容的名称,因此它以下划线开头:

我这么做是因为VB不区分大小写,并且调用变量与它们的类型相同的名称在任何语言中都是一个坏主意,并且在VB中会使intellisense混淆。您不必在C#中添加前面的下划线。仅仅在案件上进行歧视就足够了,尽管可以说这并不总是明智的:

现在我们需要修改代码。双击FillBy按钮。这是密码。也许你已经有了一些代码,也许没有。确保代码使用相关输入填充表。这是这个过程中唯一真正需要你考虑你正在做什么以及你的变量被称为什么的部分(它们可能与我的不同)

代码可能默认为
_usersTableAdapter.FillByID(_myDataSet.Users, new Guid(_lastNameToolStripTextBox.Text));因为它过去是为您在那个框中键入id (guid或int,我的db有一个guid)设置的,但是我们已经将它更改为lastname。因此,我们需要更改FillByID (现在您看到了为什么我们给它们指定合理的名称,而不是FillBy1和FillBy2),所以它是FillByLastName,我们需要更改代码,以便传递一个字符串姓氏,而不是guid
_usersTableAdapter.FillByLastName(_myDataSet.Users, _lastNameToolStripTextBox.Text);这是你唯一要写的代码。还记得我在表单上用前导下划线命名我的东西,所以我的代码有前导下划线。如果您不重命名您的东西,您的代码将不会有前导下划线
现在运行应用程序:

看看那些约翰史密斯!当然,他们是不同的用户--每个人的ID是不同的。您甚至可以在这里写入新的详细信息,然后按“保存”来更新数据库。
来自一行代码!:)
https://stackoverflow.com/questions/62860493
复制相似问题