C# 创建用作gridview的inparameter的列表
我正在做一个学校发展项目,我对发展很陌生。我一直在网上阅读,但找不到我想要的答案 到目前为止,我已经在Windows窗体应用程序中创建了一个列表框,我想从其中一列中选择所有值,这些值应该作为inparameter,根据参数在dataGridView中显示数据 我已经创建了70%的项目,剩下的就是这个功能。我的数据库在Azure中,我可以写入它并添加新行,但在运行应用程序时我无法读取任何内容 listview的代码,首先我只想能够选择。稍后,以某种方式将choosen参数写入一个变量,我可以在dataGridView中将其用作条件 这是我的gridview的代码,到目前为止,我只想显示其中的所有数据,但它没有显示任何内容C# 创建用作gridview的inparameter的列表,c#,winforms,datagridview,C#,Winforms,Datagridview,我正在做一个学校发展项目,我对发展很陌生。我一直在网上阅读,但找不到我想要的答案 到目前为止,我已经在Windows窗体应用程序中创建了一个列表框,我想从其中一列中选择所有值,这些值应该作为inparameter,根据参数在dataGridView中显示数据 我已经创建了70%的项目,剩下的就是这个功能。我的数据库在Azure中,我可以写入它并添加新行,但在运行应用程序时我无法读取任何内容 listview的代码,首先我只想能够选择。稍后,以某种方式将choosen参数写入一个变量,我可以在da
namespace MyNamespace
{
public partial class CompanyForm : Form
{
public CompanyForm()
{
InitializeComponent();
}
//Connection String
string cs = ConfigurationManager.ConnectionStrings["ConnectionString"].
ConnectionString;
private void createCompany_Click_1(object sender, EventArgs e)
{
if (textBoxCompanyName.Text == "")
{
MessageBox.Show("Fill information");
return;
}
using (SqlConnection con = new SqlConnection(cs))
{
//Create SqlConnection
con.Open();
SqlCommand cmd = new SqlCommand
(
"insert into dbo.Company (companyName)
values(@companyName)", con);
cmd.Parameters.AddWithValue
(
"@companyName",
textBoxCompanyName.Text);
SqlDataAdapter adapt = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
adapt.Fill(ds);
MessageBox.Show("GJ");
}
}
// The code that is not filling my datagrid
private void dataEmployees_Load()
{
using (SqlConnection con = new SqlConnection(cs))
{
con.Open();
SqlCommand cmd = new SqlCommand
(
"Select fname,ename FROM dbo.Users", con
);
SqlDataReader dr = cmd.ExecuteReader();
DataTable dt = new DataTable();
dt.Load(dr);
dataEmployees.DataSource = dt;
}
}
}
}
我的连接字符串正在工作,它已经能够将数据插入到我拥有的表中。网格没有显示任何数据的问题是,您试图将SqlDataReader绑定到它。这不起作用,因为网格不支持将其作为数据源 作为数据源,您需要的是DataTable、IList、IBindingList。在您的情况下,DataTable将是最简单的解决方案。试试这个:
protected void DataEmployees()
{
using (SqlConnection con = new SqlConnection(cs))
{
con.Open();
SqlCommand cmd = new SqlCommand
(
"Select firstname,lastname FROM employees",con
);
SqlDataReader dr = cmd.ExecuteReader();
DataTable dt = new DataTable();
dt.Load(dr);
dataEmployees.DataSource = dt;
}
}
请注意,方法是用大写字母C编写的。另外请注意,如果使用using块,则不需要手动关闭连接。在使用块结束时,它会自动关闭/释放。谢谢您的回答。但不幸的是,它仍然不起作用。我不知道为什么,我的数据网格是空的。@StephenSmith请在dt.Loaddr之后设置一个断点;然后检查是否有一些条目。代码从未运行到断点,这似乎是问题所在:/@Stephen Smith然后你从未调用方法DataEmployees,或者你捕获了一个异常,在这种情况下什么都不做,你的sql不正确。是的,这似乎是问题所在,不知道为什么不调用它。我已经更新了上面的代码。首先,我正在为另一个表使用另一个SQL插入,并且连接字符串变量可以通过这种形式访问