C# 无法在windows窗体datagridview上显示数据库
我试图在VisualStudioWindows窗体中查看表中的数据库(DgvTabela),但由于某些原因,它没有显示数据C# 无法在windows窗体datagridview上显示数据库,c#,postgresql,visual-studio,winforms,C#,Postgresql,Visual Studio,Winforms,我试图在VisualStudioWindows窗体中查看表中的数据库(DgvTabela),但由于某些原因,它没有显示数据 namespace ipcaTeachersPayment { public partial class frmTeachers : Form { private const string Host = "localhost"; private const string User = "apilog"; pr
namespace ipcaTeachersPayment
{
public partial class frmTeachers : Form
{
private const string Host = "localhost";
private const string User = "apilog";
private const string DBname = "gestaoDocentes";
private const string Password = "raquel";
private const string Port = "5432";
private string connstring = String.Format(
"Server={0};Username={1};Database={2};Port={3};Password={4};SSLMode=Prefer",
Host,
User,
DBname,
Port,
Password);
private NpgsqlConnection conn;
private string sql;
private NpgsqlCommand cmd;
private DataTable dt;
//private int rowIndex = -1;
public frmTeachers()
{
InitializeComponent();
}
private void BtnTeachers_Click(object sender, EventArgs e)
{
conn = new NpgsqlConnection(connstring);
Select();
}
private void Select()
{
try
{
conn.Open();
sql = @"select * from docen_selecionar()";
cmd = new NpgsqlCommand(sql, conn);
dt = new DataTable();
dt.Load(cmd.ExecuteReader());
conn.Close();
dgvTabela.DataSource = null;
dgvTabela.DataSource = dt;
}
catch (Exception ex)
{
conn.Close();
MessageBox.Show("Error: " + ex.Message);
}
}
private void DgvTabela_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (e.RowIndex >= 0)
{
txtName.Text = dgvTabela.Rows[e.RowIndex].Cells["_docente_id"].Value.ToString();
txtID.Text = dgvTabela.Rows[e.RowIndex].Cells["_nome_docente"].Value.ToString();
}
}
}
}
我不知道它是否必须与BtnTeachers\u Click中的连接有关,我曾试图通过另一个项目实现这种方式,但在插入连接时
conn=新的NpgsqlConnection(connstring);
在frmTeachers\u负载内,但此项目不同
有人能帮我吗?我们需要确定查询是否返回任何值。数据表dt是否有任何值?在conn.Close()上放置断点;(F11)。然后将鼠标悬停在变量dt上,然后按向下箭头。然后选择表格可视化工具。是的,表格有值(名称和ID号)。我插入了断点,但没有发生任何事情。如果未达到断点,则表不能有值。在到达dt.Load(cmd.ExecuteReader())之前,表不会加载值;我在另一个程序中使用了完全相同的代码和相同的postgresql数据库,它正在工作。唯一的区别是,在另一个程序上,Npgsqlconnection位于类_Load的名称内,如下所示:private void Form1_Load(object sender,EventArgs e){conn=new Npgsqlconnection(connstring);Select();}我尝试使用断点,但没有找到断点。我们需要确定查询是否返回任何值。数据表dt是否有任何值?在conn.Close()上放置断点;(F11)。然后将鼠标悬停在变量dt上,然后按向下箭头。然后选择表格可视化工具。是的,表格有值(名称和ID号)。我插入了断点,但没有发生任何事情。如果未达到断点,则表不能有值。在到达dt.Load(cmd.ExecuteReader())之前,表不会加载值;我在另一个程序中使用了完全相同的代码和相同的postgresql数据库,它正在工作。唯一的区别是,在另一个程序上,Npgsqlconnection位于类_Load的名称内,如下所示:private void Form1_Load(object sender,EventArgs e){conn=new Npgsqlconnection(connstring);Select();}我尝试使用断点,但没有找到