各位高手帮帮忙啊!“System.Data.SqlClient.SqlDataAdapter”不包含“ExecuteNonQuery”的定义,

丗汐 2020-05-08 03:59:54
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Data;



public partial class Default34 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindData();
}
}
public void BindData()
{
SqlConnection con = new SqlConnection("Server=.;User ID=sx782369;Pwd=123456;DataBase=sx782369");
SqlDataAdapter scd = new SqlDataAdapter("select * from course2", con);
DataSet ds = new DataSet();
scd.Fill(ds);
GridView1.DataSource = ds;
GridView1.DataBind();
GridView1.DataKeyNames = new string[]{ "id" };
}
protected void GridView1_roweditinf(object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
DataBind();
}
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
string bccdID = GridView1.DataKeys[e.RowIndex].Value.ToString();
string bccdName = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString();
string bccdPrice = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[2].Controls[0])).Text.ToString();
string upsql = "update course2 set brccdName='"+bccdName+"',brccdPrice='"+bccdPrice+"' where id='"+bccdID+"'";
bool update = excesql(upsql);
if (update)
{
Response.Write("<script>alert(‘修改成功~’)</script>");
GridView1.EditIndex = -1;
BindData();
}
}
public bool excesql(string strsql)
{
string strcon = @"Server=.;User ID=sx782369;Pwd=123456;DataBase=sx782369";
SqlConnection conn = new SqlConnection(strcon);
SqlDataAdapter scd = new SqlDataAdapter(strsql, conn);
try
{
if (conn.State == System.Data.ConnectionState.Closed)
{
conn.Open();
}
scd.ExecuteNonQuery();
return true;
}
catch
{
return false;
}
finally
{
conn.Close();
}
}
}
scd.ExecuteNonQuery();这句老是报错误。
CS1061: “System.Data.SqlClient.SqlDataAdapter”不包含“ExecuteNonQuery”的定义,并且找不到可接受类型为“System.Data.SqlClient.SqlDataAdapter”的第一个参数的扩展方法“ExecuteNonQuery”(是否缺少 using 指令或程序集引用?)
...全文
1986 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
刚学的时候觉得 DataAdataper 方便,必经它对应的是 DataTable 适配关系数据库。

我们现在从来不用 DataAdapter,我们也几乎不用 DataTable。而且类似 ExecuteNonQuery 这类需求其实更是应该开发有一套好用的 SqlHelper 简单框架。
  • 打赏
  • 举报
回复
随便贴一段我们的代码
    db.CreateCommand($"update [代理人] set 机构编码=@j,[团队名称]=@t,[团队状态]=@z,[团队长费率]=@f where Id=@id")
.SetParam("j", this.Command.GetValue<string>("机构编码"))
.SetParam("t", this.Command.GetValue<string>("团队名称"))
.SetParam("z", this.Command.GetValue<string>("团队状态"))
.SetParam("f", this.Command.GetValue<double>("团队长费率"))
.SetParam("id", this.Command.GetValue<string>("Id"))
.ExecuteNonQuery();


自己把 ADO.NET 封装一下扩展函数,成为一套 SQLHelper,可以使得它更好用,更清晰。

例如(简化版。实际上我们的 SQLHelper 要处理 Oracle 等不同数据库的问题)
public static DbCommand SetParam(this DbCommand cmd, string paramName, object paramValue)
{
switch (paramValue)
{
case DateTime dt:
if (dt.Year < 1753)
paramValue = new DateTime(1753, 1, 1);
break;
case null:
paramValue = DBNull.Value;
break;
}
var p = cmd.CreateParameter();
p.ParameterName = paramName;
p.Value = paramValue;
cmd.Parameters.Add(p);
return cmd;
}
通过类似的定义,你可以让 c# 语言更加适合自己书写习惯。
丗汐 2020-07-17
  • 打赏
  • 举报
回复
谢谢各位,那天头太晕没看见代码打错了,第二天找的时候就找到了,麻烦了
EdsionWang 2020-05-15
  • 打赏
  • 举报
回复

   SqlDataAdapter scd = new SqlDataAdapter(strsql, conn);
==>

SqlCommand scd = new SqlCommand(strsql, conn);
泉低调前行 2020-05-12
  • 打赏
  • 举报
回复
SqlDataAdapter是适配器啊
泉低调前行 2020-05-12
  • 打赏
  • 举报
回复
是SqlCommand命令里面的方法
aquayhy 2020-05-10
  • 打赏
  • 举报
回复
C#有2套操作数据库的组件 1.SqlDataAdapter 配合dataset 2.SqlCommand 直接用sql语句增删改查。 ExecuteNonQuery是属于SqlCommand 的 这个大概试试就可以跳过去,网上有很多封装好的sqlhelper,直接拿来用。
快乐起航2020 2020-05-09
  • 打赏
  • 举报
回复
这个类没有提供这个方法,你何苦执着呢。我想编译都不会通过吧
正怒月神 版主 2020-05-08
  • 打赏
  • 举报
回复
scd.ExecuteNonQuery(); 改成 DataTable tab=new DataTable (); scd.fill(tab);
.NET Framework 4.0 常用类库参考手册 [微软官方 MSDN] MSDN Library - .NET Framework 4.0 - 命名空间 (节选版) 制作成了chm格式,方便离线状态下学习! ======================================= 原文地址:http://msdn.microsoft.com/zh-cn/library/ms229335.aspx ======================================= .NET Framework 类库 - 命名空间 (节选版) Microsoft.Win32 提供两种类型的类:处理由操作系统引发的事件的类和对系统注册表进行操作的类。 System 包含用于定义常用值和引用数据类型、事件和事件处理程序、接口、特性和处理异常的基础类和基类。其他类提供支持下列操作的服务:数据类型转换,方法参数操作,数学计算,远程和本地程序调用,应用程序环境管理以及对托管和非托管应用程序的监管。 System.Collections 包含定义各种对象集合(如列表、队列、位数组、哈希表和字典)的接口和类。 System.Data 包含组成大部分 ADO.NET 结构的类。ADO.NET 结构使您可以生成可用于有效管理来自多个数据源的数据的组件。 System.Data.Common 包含由 .NET Framework 数据提供程序共享的类。.NET Framework 数据提供程序描述用于在托管空间中访问数据源(如数据库)的类的集合。 System.Data.Linq 包含支持在 LINQ to SQL 应用程序中与关系数据库进行交互的类。 System.Data.Linq.Mapping 包含用于生成表示关系数据库的结构和内容的 LINQ to SQL 对象模型的类。 System.Data.Mapping 提供用于存储数据映射信息的类型。 System.Data.Metadata.Edm 包含一组类型,这些类型表示模型中由实体框架使用的概念,以及一组帮助应用程序使用元数据的类。 System.Data.Objects 包含可访问对象服务的核心功能的类。 System.Data.Objects.DataClasses 包含以下这些类:Entity Data Model (EDM) 中定义的类型的基类、由导航属性返回的类型的基类,以及用于定义将公共语言运行时 (CLR) 对象映射到概念模型中类型的特性的类。 System.Data.Sql 包含支持特定于 SQL Server 的功能的类。此类的 API 扩展已添加到 SQL Server 的 .NET Framework 数据提供程序 ( System.Data.SqlClient) 中。 System.Data.SqlClient 包含封装 SQL Server .NET Framework 数据提供程序的类。SQL Server .NET Framework 数据提供程序描述了用于在托管空间中访问 SQL Server 数据库的类集合。 System.IO 包含允许对数据流和文件进行同步和异步读写的类型。 System.Linq 包含支持使用语言集成查询 (LINQ) 的查询的类和接口。 System.Web 提供启用浏览器/服务器通信的类和接口。 ……

62,254

社区成员

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

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

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

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