SqlDataAdapter.Fill无效的对象名称SQL [英] SqlDataAdapter.Fill Invalid object name SQL

查看:65
本文介绍了SqlDataAdapter.Fill无效的对象名称SQL的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试将数据从sql数据库表加载到datagridview.

I am trying to load data from a sql database table into a datagridview.

我得到以下信息:

在System.Data.dll中发生了类型为'System.Data.SqlClient.SqlException'的未处理异常.其他信息:无效的对象名称'JournalItems'.

An unhandled exception of type 'System.Data.SqlClient.SqlException' occurred in System.Data.dll Additional information: Invalid object name 'JournalItems'.

致电时:

SqlDataAdapter.Fill(<dataset here>, <datatable name here>)

我知道JournalItems是我数据库中的有效数据表.我也尝试过使用"MyInitialCatalog.dbo.JournalItems"和"MyInitialCatalog.JournalItems"没有成功.

I know that JournalItems is a valid datatable in my database. I have also tried using "MyInitialCatalog.dbo.JournalItems" and "MyInitialCatalog.JournalItems" with no success.

这是我的代码:

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

PS: here is the tutorial I am trying to follow: http://csharp.net-informations.com/datagridview/csharp-datagridview-database-operations.htm

推荐答案

PS这是我要遵循的教程:http://csharp.net-informations.com/datagridview/csharp-datagridview-database-operations.htm

这是您应该遵循的教程集:

Here is the tutorial set you should be following:

https://msdn.microsoft.com/en-us/library/fxsa23t6.aspx

从创建简单的数据应用程序"开始

Start with "Creating a simple data application"

为什么我提倡这些,而不是您在网络上找到的其他方法?并非详尽的原因清单:

Why do I advocate these over other ones you'll find on the web? Not an exhaustive list of reasons:

  • 您正在使用的编程语言的创建者,将其创建为使用数据集的最佳实践模型
  • 除非您需要精打细算,否则它们会适当地抽象(隐藏)数据库交互周围的许多细节
  • 它将无休止地清理您的代码
  • 它们安全,快速且功能强大;您会自动远离SQL注入之类的大规模安全性
  • 它们是您现在正在做的事情的主要步骤;您不会通过手工编写用于放置和设置每个组件属性的语句来布局Windows窗体:您使用的视觉设计器可提供丰富专业的编辑体验,并生成高质量的代码.这没什么

如果您采用Microsoft建议您进行数据访问的方式,则您的代码将看起来像这样:

If you get on board with the way microsoft recommend you to do your data access, your code will look a bit more like this:

MyTypedDataSet ds = new MyTypedDataSet();
MyTypedTableAdapter ta = new MyTypedTableAdapter();
ta.Fill(ds, "my where clause parameter value");
myGridview.DataSource = ds.MyTypedTable;

或者至少:

myGridview.DataSource = new MyTypedTableAdapter().GetXXX();

没有连接字符串,没有充满狡猾SQL的按钮单击处理程序;可重用,可维护,易于阅读的代码,无需花费100行就能推动数据库连接的细微变化

No conenction strings, no button click handlers full of dodgy SQL; reusable, maintainable, easy to read code that doesn't take 100 lines to push the minutae of database connectivity around

这篇关于SqlDataAdapter.Fill无效的对象名称SQL的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆