如何将System.Data.IDbConnection转换成SqlConnection ?

暗石绿 2003-08-07 09:18:36
(“转换”是不是用错词汇了。。。)

public override IDbConnection Connection
{
get{return this.sqlConn;}
}


sqlCmd = new SqlCommand( strSelect, db.Connection);

不认 db.Connection ........

C:\Inetpub\wwwroot\WebService1\BasicInfo\Service_Goods.asmx.cs(93): 参数“2” : 无法从“System.Data.IDbConnection”转换为“System.Data.SqlClient.SqlConnection”

谁能告诉我应该怎么办?
...全文
238 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
暗石绿 2003-08-07
  • 打赏
  • 举报
回复
10,0,10,
贴子回复次数大于跟给分次数

天哪。。。。。。。。。。。。。
暗石绿 2003-08-07
  • 打赏
  • 举报
回复
嗯,已经搞定了。
前面昏了头了。
xhan2000 2003-08-07
  • 打赏
  • 举报
回复
偶刚用设计模式完成一个这样的东西

sqlCmd = new SqlCommand( strSelect, (IDbConnection)db.Connection);
DoNotTomcat 2003-08-07
  • 打赏
  • 举报
回复
水平低,关注了,帮你顶。
saucer 2003-08-07
  • 打赏
  • 举报
回复
try

sqlCmd = new SqlCommand( strSelect, (SqlConnection)db.Connection);
windows ce的开发int startTickCount = Environment.TickCount; // 创建源 SQL Server 数据库连接对象 string srcConnString = "Data Source=(local);Initial Catalog=Northwind;User Id=sa;Password=123;"; SqlConnection srcConnection = new SqlConnection(srcConnString); // 创建目标 SQL Server Compact Edition 数据库连接对象 string destConnString = @"Data Source=Northwind.sdf"; SqlCeConnection destConnection = new SqlCeConnection(destConnString); VerifyDatabaseExists(destConnString); srcConnection.Open(); destConnection.Open(); // 复制数据 CopyTable(srcConnection, destConnection, "SELECT * FROM Products", "Products"); CopyTable(srcConnection, destConnection, "SELECT * FROM Employees", "Employees"); srcConnection.Close(); destConnection.Close(); MessageBox.Show((Environment.TickCount - startTickCount).ToString()); } /// /// 将源数据库表的数据复制到 SQL Server Compact Edition 数据库的表中。 /// /// 源数据库连接接对象。 /// 目标 SQL Server Compact Edition 数据库连接对象。 /// 源数据的查询语句。 /// 目标数据库表名称。 /// 本方法假设目标 SQL Server Compact Edition 数据库的表已经存在。 public static void CopyTable( IDbConnection srcConnection, SqlCeConnection destConnection, string queryString, string destTableName) { IDbCommand srcCommand = srcConnection.CreateCommand(); srcCommand.CommandText = queryString; SqlCeCommand destCommand = destConnection.CreateCommand(); destCommand.CommandType = CommandType.TableDirect; //基于表的访问,性能更好 destCommand.CommandText = destTableName; try { IDataReader srcReader = srcCommand.ExecuteReader(); SqlCeResultSet resultSet = destCommand.ExecuteResultSet( ResultSetOptions.Sensitive | //检测对数据源所做的更改 ResultSetOptions.Scrollable | //可以向前或向后滚动 ResultSetOptions.Updatable); //允许更新数据 object[] values; SqlCeUpdatableRecord record; while (srcReader.Read()) { // 从源数据库表读取记录 values = new object[srcReader.FieldCount]; srcReader.GetValues(values); // 把记录写入到目标数据库表 record = resultSet.CreateRecord(); record.SetValues(values); resultSet.Insert(record); } srcReader.Close(); resultSet.Close(); } catch (Exception ex) { System.Diagnostics.Debug.WriteLine(ex.ToString()); } } public static void VerifyDatabaseExists(string connectionString) { using (SqlCeConnection connection = new SqlCeConnection(connectionString)) { if (!File.Exists(connection.Database)) { using (SqlCeEngine engine = new SqlCeEngine(connection.ConnectionString)) { engine.CreateDatabase(); string[] commands = Properties.Resources.DbSchema.Split(';'); SqlCeCommand command = new SqlCeCommand(); command.Connection = connection; connection.Open(); string query; for (int i = 0; i < commands.Length; i++) { query = commands[i].Trim(); if (!string.IsNullOrEmpty(query)) { command.CommandText = query; command.ExecuteNonQuery(); } } } } }

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧