【发布时间】:2017-07-24 14:54:45
【问题描述】:
我正在尝试将 sql 数据库表中的数据加载到 datagridview 中。
我得到以下信息:
System.Data.dll 中出现“System.Data.SqlClient.SqlException”类型的未处理异常附加信息:无效的对象名称“JournalItems”。
调用时:
SqlDataAdapter.Fill(<dataset here>, <datatable name here>)
我知道 JournalItems 是我数据库中的有效数据表。我也尝试过使用“MyInitialCatalog.dbo.JournalItems”和“MyInitialCatalog.JournalItems”,但没有成功。
这是我的代码:
private void loadData_Click(object sender, EventArgs e)
{
string connectionString = "Data Source=myDataSource;Initial Catalog=MyInitialCatalog;Persist Security Info=True;User ID=myID;Password=myPassword";
string sql = "SELECT * FROM JournalItems";
SqlConnection connection = new SqlConnection(connectionString);
connection.Open();
sCommand = new SqlCommand(sql, connection);
sAdapter = new SqlDataAdapter(sCommand);
sBuilder = new SqlCommandBuilder(sAdapter);
sDs = new DataSet();
JournalItems = new DataTable();
sAdapter.Fill(sDs, "JournalItems");
sTable = sDs.Tables["JournalItems"];
connection.Close();
journalItemsDataGridView.DataSource = sDs.Tables["JournalItems"];
journalItemsDataGridView.ReadOnly = true;
saveData.Enabled = false;
journalItemsDataGridView.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
}
PS:这是我要遵循的教程: http://csharp.net-informations.com/datagridview/csharp-datagridview-database-operations.htm
【问题讨论】:
-
你应该给你的 DataTable 命名 JournalItems : JournalItems = new DataTable("JournalItems");
-
您是否在调用 Open() 后检查了连接状态是否处于打开状态?也可以尝试只使用 sAdapter.Fill(sDs);
-
嘿,我确实检查了连接的状态,它是打开的。此外,仅使用 sAdapter.Fill(sDs); 时它仍然给我完全相同的错误;
-
@JonathanWillcock 您在使用数据适配器时不需要打开连接;它会为你做这件事,并把它恢复到后来找到它的状态
-
@CaiusJard 我只是想确保连接字符串没问题!
标签: c# sql datagridview