捕捉到 System.Data.SqlClient.SqlException Message=对象名 '' 无效

问题描述

建立的Connecting的链接,数据是指向A。我现在通过A的数据库链接要向B数据库中写入数据(A和B是在同一台服务器上。)代码如下MasterCmd=newSqlCommand("select*fromB..p_materialwheretParentId=101",db.thisSqlconnection);MasterAdapter=newSqlDataAdapter();MasterAdapter.SelectCommand=MasterCmd;MasterDt=newDataTable();MasterAdapter.Fill(MasterDt);上面代码是打开B数据库中p_material,是可以读取数据的DR=MasterDt.NewRow();......MasterDt.Rows.Add(DR);MasterAdapter.Update(MasterDt);上面的代码在向B数据库中p_material插入数据时报错提示:捕捉到System.Data.SqlClient.SqlExceptionMessage=对象名'p_material'无效。Source=.NetSqlClientDataProviderErrorCode=-2146232060Class=16LineNumber=1Number=208Procedure=""Server=10.97.138.145State=1StackTrace:在System.Data.Common.DbDataAdapter.UpdatedRowStatusErrors(RowUpdatedEventArgsrowUpdatedEvent,BatchCommandInfo[]batchCommands,Int32commandCount)在System.Data.Common.DbDataAdapter.UpdatedRowStatus(RowUpdatedEventArgsrowUpdatedEvent,BatchCommandInfo[]batchCommands,Int32commandCount)在System.Data.Common.DbDataAdapter.Update(DataRow[]dataRows,DataTableMappingtableMapping)在System.Data.Common.DbDataAdapter.UpdateFromDataTable(DataTabledataTable,DataTableMappingtableMapping)在System.Data.Common.DbDataAdapter.Update(DataTabledataTable)在HCSZ_EMC.Film_Frm_P_Material.AddNew()位置C:Users0100146DesktopHCSZ_EMCHCSZ_EMCHCSZ_EMCFilm_Frm_P_Material.cs:行号265在HCSZ_EMC.Film_Frm_P_Material.tbtSave_Click(Objectsender,EventArgse)位置C:Users0100146DesktopHCSZ_EMCHCSZ_EMCHCSZ_EMCFilm_Frm_P_Material.cs:行号298InnerException:求教大神们如何解决。(要是能新建B数据库的链接,就不存在此问题了。)

解决方案

解决方案二:
对象名'p_material'无效,估计是在A连接中执行了更新找不到这张表;建议用ExecuteNonQuery,再写newSqlCommand("updateB..p_material.."试试,不要用MasterAdapter.Update(MasterDt);
解决方案三:
用updateB..p_material。。。是可以的。MasterAdapter.Fill(MasterDt)能读取出数据,为什么MasterAdapter.Update(MasterDt)不行。
解决方案四:
引用2楼lishan200012的回复:

用updateB..p_material。。。是可以的。MasterAdapter.Fill(MasterDt)能读取出数据,为什么MasterAdapter.Update(MasterDt)不行。

估计是在A连接中执行了SQL语句,updatep_material。。。,但A数据库中没有表p_material,所以报错了,你可以用用SQLServerProfiler追踪这个结果看看。MasterAdapter.Update(MasterDt)这个原理那些就不看了,好久没用ado.net了
解决方案五:
B..p_material-》这中间是2个点号么????先把Sql语句在sql编译器中执行一边,看看有没有语法错误。
解决方案六:
引用4楼duanzi_peng的回复:

B..p_material-》这中间是2个点号么????先把Sql语句在sql编译器中执行一边,看看有没有语法错误。

语法上没有问题的。
解决方案七:
引用5楼lishan200012的回复:

Quote: 引用4楼duanzi_peng的回复:
B..p_material-》这中间是2个点号么????先把Sql语句在sql编译器中执行一边,看看有没有语法错误。

语法上没有问题的。

必须重建B数据库的链接。不同的链接创建不同的cmd对象,对不同的数据库进行操作。你虽然创建了A数据库的链接,但是cmd执行的sql语句是不知道有B这个数据库的。
解决方案八:
引用6楼duanzi_peng的回复:

Quote: 引用5楼lishan200012的回复:
Quote: 引用4楼duanzi_peng的回复:
B..p_material-》这中间是2个点号么????先把Sql语句在sql编译器中执行一边,看看有没有语法错误。

语法上没有问题的。

必须重建B数据库的链接。不同的链接创建不同的cmd对象,对不同的数据库进行操作。你虽然创建了A数据库的链接,但是cmd执行的sql语句是不知道有B这个数据库的。

这个应该不是跟数据库的链接有关。应该是SQLDataAdapter有关。

时间: 2024-10-04 15:54:51

捕捉到 System.Data.SqlClient.SqlException Message=对象名 '' 无效的相关文章

大神求解啊!!!System.Data.SqlClient.SqlException: 传递到 SUBSTRING 函数的长度参数无效。

问题描述 Seetheendofthismessagefordetailsoninvokingjust-in-time(JIT)debugginginsteadofthisdialogbox.**************ExceptionText**************System.Data.SqlClient.SqlException:传递到SUBSTRING函数的长度参数无效.atSystem.Data.SqlClient.SqlConnection.OnError(SqlExcepti

System.Data.SqlClient.SqlException 超时时间已到

错误信息: 有关调用实时(JIT)调试而不是此对话框的详细信息, 请参见此消息的结尾. ************** 异常文本 ************** System.ServiceModel.FaultException`1[System.ServiceModel.ExceptionDetail]: Timeout 时间已到.在操作完成之前超时时间已过或服务器未响应. (错误详细信息等于 很可能由 IncludeExceptionDetailInFaults=true 创建的 Except

System.Data.SqlClient.SqlException: 'System' 附近有语法错误。

问题描述 usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Web;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Data.SqlClient;usingSystem.Data;namespaceWebApplication1{publicpartialclasswjdc_xs1:System.Web.UI.Page{pro

System.Data.SqlClient.SqlException: 无法打开登录所请求的数据库

  问题是这样的...我在VS2008直接运行打开网页,可以连接数据库...但通过输入地址,也可以打开网页,但涉及数据库就出问题... 无法打开登录所请求的数据库 "TakeClass".登录失败. 用户 '2D2727E2578F446ASPNET' 登录失败. 说明: 执行当前 Web 请求期间,出现未处理的异常.请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息. 异常详细信息: System.Data.SqlClient.SqlException: 无法打开

new-求解!!“System.Data.SqlClient.SqlException”类型的异常

问题描述 求解!!"System.Data.SqlClient.SqlException"类型的异常 使用vs调试网站时候出现一下问题. "System.Data.SqlClient.SqlException"类型的异常在 System.Data.dll 中发生,但未在用户代码中进行处理 其他信息: 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误.未找到或无法访问服务器.请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接

LINQToDataTable报错,System.Data.SqlClient.SqlException (0x80131904): Timeout 时间已到。

问题描述 System.Data.SqlClient.SqlException(0x80131904):Timeout时间已到.在操作完成之前超时时间已过或服务器未响应.--->System.ComponentModel.Win32Exception(0x80004005):等待的操作过时.在System.Data.SqlClient.SqlConnection.OnError(SqlExceptionexception,BooleanbreakConnection,Action`1wrapCl

调试中显示了System.Data.SqlClient.SqlException”类型的第一次机会异常在 System.Data.dll 中发生 的错误

问题描述 代码如下,查询不到数据库内的内容,总显示"没有成绩",报错调试中显示了System.Data.SqlClient.SqlException"类型的第一次机会异常在System.Data.dll中发生的错误sql语句是对的,在sqlserver里面试过可以查询代码如下:usingSystem;usingSystem.Data;usingSystem.Data.SqlClient;usingSystem.Configuration;usingSystem.Collect

System.Data.SqlClient.SqlException: 无法打开登录所请求的数据库 登录失败。_实用技巧

问题是这样的...我在VS2008直接运行打开网页,可以连接数据库...但通过输入地址,也可以打开网页,但涉及数据库就出问题... 无法打开登录所请求的数据库 "TakeClass".登录失败. 用户 '2D2727E2578F446\ASPNET' 登录失败. 说明: 执行当前 Web 请求期间,出现未处理的异常.请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息. 异常详细信息: System.Data.SqlClient.SqlException: 无法打开登

System.Data.SqlClient.SqlException: 数据类型 text 和 varchar 在 equal to 运算符中不兼容。

一.引起的源头 环境:vs2015,sqlserver2008 相关程序包:ef6 定义了一个实体article public class Article { public string Data{get;set;} } EntityTypeConfiguration的配置 Property(a => a.Data).IsRequired().HasColumnType("text"); 这样可以正常生成表字段,而且类型也正确插入数据的时候,就引起了以下异常 System.Dat