c# 中 table 名称的无效对象名称 sql 异常
invalid object name sql exception for table name in c#
我写了这段代码,但它不起作用。给出无效的对象名称 'Inventory'`。有什么建议吗?
using (SqlConnection cn = new SqlConnection())
{
cn.ConnectionString =
@"Data Source=(local);Integrated Security=SSPI;" +
"Initial Catalog=AutoLot";
cn.Open();
string strSQL = "Select * From Inventory";
SqlCommand myCommand = new SqlCommand(strSQL, cn);
// Obtain a data reader a la ExecuteReader().
using (SqlDataReader mydatareader = mycommand.ExecuteReader())
{}
检查数据库清单 table 是否存在,如果存在则两个名称应该相同
如果您已经检查了所有数据库设置、访问权限和 table 定义,但仍然无法消除该错误?
这是因为 ASP.net 无法理解 您的 SQL 查询 - 听起来可能令人震惊。
我遇到了同样的问题,UPDATE
语句想要使用 aliases
而不是通常预期的 dbo.myTable
名称定义。
避免这种情况的最简单方法是将代码放入 asp.net 不像 SQL 服务器那样解析 SQL (!!) =15=].
这是我的 SQL 直接来自 SQL Server 2005 并且它按原样完美运行...
UPDATE tsa
SET tsa.ActionComplete = @ActionComplete,
tsa.CompleteDate = GETDATE(),
tsa.Notes = @ActionNotes
FROM blahblah
WHERE blahblah
但是出于某种原因,SqlDataSource
控件中的 ASP.net 解析器无法理解它(即使它 运行 完全位于 GUI 的 中测试查询 功能!)。
我得到了
invalid object name in 'tsa'
所以我将批次放在存储过程中...
USE [mydatabase];
GO
SET ANSI_NULLS ON;
GO
SET QUOTED_IDENTIFIER ON;
GO
ALTER PROCEDURE [dbo].[spTETupdateActions]
@StudentID VARCHAR(10),
@ActionComplete INT = 0,
@ActionNotes VARCHAR(MAX),
@TETmeetingID INT,
@WeekNo INT,
@TETID INT,
@TETdate DATETIME,
@ActionItem VARCHAR(MAX)
WITH
EXEC AS CALLER AS
UPDATE tsa
SET tsa.ActionComplete = @ActionComplete,
tsa.CompleteDate = GETDATE(),
tsa.Notes = @ActionNotes
FROM blahblah
WHERE blahblah
GO
瞧!没有更多的错误!为什么?因为 SQL 的解析是在 SQL 服务器内部完成的,而不是 ASP.net!
我写了这段代码,但它不起作用。给出无效的对象名称 'Inventory'`。有什么建议吗?
using (SqlConnection cn = new SqlConnection())
{
cn.ConnectionString =
@"Data Source=(local);Integrated Security=SSPI;" +
"Initial Catalog=AutoLot";
cn.Open();
string strSQL = "Select * From Inventory";
SqlCommand myCommand = new SqlCommand(strSQL, cn);
// Obtain a data reader a la ExecuteReader().
using (SqlDataReader mydatareader = mycommand.ExecuteReader())
{}
检查数据库清单 table 是否存在,如果存在则两个名称应该相同
如果您已经检查了所有数据库设置、访问权限和 table 定义,但仍然无法消除该错误?
这是因为 ASP.net 无法理解 您的 SQL 查询 - 听起来可能令人震惊。
我遇到了同样的问题,UPDATE
语句想要使用 aliases
而不是通常预期的 dbo.myTable
名称定义。
避免这种情况的最简单方法是将代码放入 asp.net 不像 SQL 服务器那样解析 SQL (!!) =15=].
这是我的 SQL 直接来自 SQL Server 2005 并且它按原样完美运行...
UPDATE tsa
SET tsa.ActionComplete = @ActionComplete,
tsa.CompleteDate = GETDATE(),
tsa.Notes = @ActionNotes
FROM blahblah
WHERE blahblah
但是出于某种原因,SqlDataSource
控件中的 ASP.net 解析器无法理解它(即使它 运行 完全位于 GUI 的 中测试查询 功能!)。
我得到了
invalid object name in 'tsa'
所以我将批次放在存储过程中...
USE [mydatabase];
GO
SET ANSI_NULLS ON;
GO
SET QUOTED_IDENTIFIER ON;
GO
ALTER PROCEDURE [dbo].[spTETupdateActions]
@StudentID VARCHAR(10),
@ActionComplete INT = 0,
@ActionNotes VARCHAR(MAX),
@TETmeetingID INT,
@WeekNo INT,
@TETID INT,
@TETdate DATETIME,
@ActionItem VARCHAR(MAX)
WITH
EXEC AS CALLER AS
UPDATE tsa
SET tsa.ActionComplete = @ActionComplete,
tsa.CompleteDate = GETDATE(),
tsa.Notes = @ActionNotes
FROM blahblah
WHERE blahblah
GO
瞧!没有更多的错误!为什么?因为 SQL 的解析是在 SQL 服务器内部完成的,而不是 ASP.net!