数据库连接〜在本地不在服务器上工作

时间:2011-05-09 02:33:13

标签: vb.net visual-studio-2008

我的查询在我的本地工作正常,但当放在服务器上时会返回此错误,

“页面”应用程序中的服务器错误。

错误[IM002] [Microsoft] [ODBC驱动程序管理器]未找到数据源名称且未指定默认驱动程序

描述:执行当前Web请求期间发生了未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

异常详细信息:System.Data.Odbc.OdbcException:ERROR [IM002] [Microsoft] [ODBC驱动程序管理器]未找到数据源名称且未指定默认驱动程序

来源错误:

在执行当前Web请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常的起源和位置的信息。

堆栈追踪:

[OdbcException(0x80131937):ERROR [IM002] [Microsoft] [ODBC驱动程序管理器]未找到数据源名称且未指定默认驱动程序]    System.Data.Odbc.OdbcConnection.HandleError(OdbcHandle hrHandle,RetCode retcode)+1159314    System.Data.Odbc.OdbcConnectionHandle..ctor(OdbcConnection连接,OdbcConnectionString constr,OdbcEnvironmentHandle environmentHandle)+95    System.Data.Odbc.OdbcConnectionOpen..ctor(OdbcConnection outerConnection,OdbcConnectionString connectionOptions)+53    System.Data.Odbc.OdbcConnectionFactory.CreateConnection(DbConnectionOptions选项,Object poolGroupProviderInfo,DbConnectionPool池,DbConnection owningObject)+55    System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection,DbConnectionPoolGroup poolGroup)+29    System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)+4866464    System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection,DbConnectionFactory connectionFactory)+117    System.Data.Odbc.OdbcConnection.Open()+ 40    System.Data.Common.DbDataAdapter.QuietOpen(IDbConnection连接,ConnectionState& originalState)+31    System.Data.Common.DbDataAdapter.FillInternal(DataSet数据集,DataTable [] datatables,Int32 startRecord,Int32 maxRecords,String srcTable,IDbCommand命令,CommandBehavior行为)+112    System.Data.Common.DbDataAdapter.Fill(DataSet dataSet,Int32 startRecord,Int32 maxRecords,String srcTable,IDbCommand command,CommandBehavior behavior)+287    System.Data.Common.DbDataAdapter.Fill(DataSet dataSet,String srcTable)+92    System.Web.UI.WebControls.SqlDataSourceView.ExecuteSelect(DataSourceSelectArguments arguments)+1297    System.Web.UI.WebControls.BaseDataList.GetData()+38    System.Web.UI.WebControls.DataGrid.CreateControlHierarchy(Boolean useDataSource)+153    System.Web.UI.WebControls.BaseDataList.OnDataBinding(EventArgs e)+54    System.Web.UI.WebControls.BaseDataList.DataBind()+55    System.Web.UI.WebControls.BaseDataList.EnsureDataBound()+ 60    System.Web.UI.WebControls.BaseDataList.OnPreRender(EventArgs e)+15    System.Web.UI.Control.PreRenderRecursiveInternal()+ 80    System.Web.UI.Control.PreRenderRecursiveInternal()+171    System.Web.UI.Control.PreRenderRecursiveInternal()+171    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint,Boolean includeStagesAfterAsyncPoint)+842

任何想法? 干杯!

1 个答案:

答案 0 :(得分:0)

您正在使用ODBC连接到服务器。如果您使用在服务器上创建它的DSN(存储在服务器上的命名ODBC连接),则必须确保此代码正在运行。如果使用无DSN连接(在代码中进行设置),则需要确保服务器上已安装正在使用的ODBC驱动程序。

无DSN连接字符串可能如下所示:

Driver={SQL Native Client};Server=myServerAddress;Database=myDataBase; Trusted_Connection=yes;

并非所有这些都指定了驱动程序,但在这种情况下确实如此。您需要确保在服务器上安装了“SQL Native Client”驱动程序。 DNS连接在此字符串中将具有DSN条目,如下所示:

DSN=MyDBConnection;

查看您的代码,您将找到自己的代码。一旦找到了,找出你需要放在服务器上的东西。您很可能需要向服务器添加DSN。这是通过转到控制面板并搜索ODBC来完成的。在那里,您可以创建一个与开发计算机上的条目匹配的新ODBC条目。以下是创建ODBC(DSN)条目的链接:

http://support.microsoft.com/kb/305599

确保在“系统”下创建DNS,而不是“用户”选项卡。这样,它可用于应用程序可能运行的任何登录。