using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls;public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) {
DataAccess.Class1 dc = new DataAccess.Class1(); string sql = @"Common.Class1.sql_geta"; DataSet ds = dc.getUsers(sql); this.GridView1.DataSource = ds.Tables[0].DefaultView; this.GridView1.DataBind(); }}using System; using System.Collections.Generic; using System.Text;namespace Common { public class Class1 { public const string ConnectString = "server=localhost;database=NorthWind;user=mjc;password=123;"; public const string sql_geta = "select*from Customers"; public const string table_geta = "Customers"; } }using System; using System.Collections.Generic; using System.Text; using System.Data.SqlClient; using System.Data; namespace DataAccess { public class Class1 { SqlConnection cn = new SqlConnection(Common.Class1.sql_geta); SqlDataAdapter da; DataSet ds; public DataSet getUsers(string sql) { string sql =Common.Class1.sql_geta; SqlCommand cmd = new SqlCommand(sql , cn); da = new SqlDataAdapter(cmd); ds = new DataSet(); da.Fill(ds, Common.Class1.table_geta); return ds;
} } }
using Common;
应该是命名空间的问题 namespace Common namespace DataAccess 代码修改如下: using System; using System.Collections.Generic; using System.Text; using System.Data.SqlClient; using System.Data; using Common;namespace DataAccess { public class Class1 { SqlConnection cn = new SqlConnection(Common.Class1.sql_geta); SqlDataAdapter da; DataSet ds; public DataSet getUsers(string sql) { string sql =Common.Class1.sql_geta; SqlCommand cmd = new SqlCommand(sql , cn); da = new SqlDataAdapter(cmd); ds = new DataSet(); da.Fill(ds, Common.Class1.table_geta); return ds;
} } }
还是不行,提示“getUsers”方法没有采用“1”个参数的重载。
呵呵,刚改错了 你试试下面的 using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using Common; namespace DataAccess; public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) {
DataAccess.Class1 dc = new DataAccess.Class1(); string sql = @"Common.Class1.sql_geta"; DataSet ds = dc.getUsers(sql); this.GridView1.DataSource = ds.Tables[0].DefaultView; this.GridView1.DataBind(); }}
程序中获取字符串连接是错误的,其他代码没有错误,我已经测试过了 修改代码如下:using System; using System.Collections.Generic; using System.Text; using System.Data.SqlClient; using System.Data; namespace DataAccess { public class Class1 { //SqlConnection cn = new SqlConnection(Common.Class1.sql_geta); SqlConnection cn = new SqlConnection(Common.Class1.ConnectString); SqlDataAdapter da; DataSet ds; public DataSet getUsers(string sql) { string sql =Common.Class1.sql_geta; SqlCommand cmd = new SqlCommand(sql , cn); da = new SqlDataAdapter(cmd); ds = new DataSet(); da.Fill(ds, Common.Class1.table_geta); return ds;
using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls;using System.Collections.Generic; using System.Text; namespace Common { public class Class1 { // public const string ConnectString ="server=localhost;database=NorthWind;user=mjc;password=123;"; public const string connectionString="Data Source=2012-20130305KU;Initial Catalog=c#;Integrated Security=True" ; public const string sql_geta = "select * from Customers"; public const string table_geta = "Customers"; } } using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Collections.Generic; using System.Text; using System.Data.SqlClient;namespace DataAccess { public class Class1 { [color=#FF0000] // SqlConnection cn = new SqlConnection(Common.Class1.sql_geta); SqlConnection cn = new SqlConnection(Common.Class1.connectionString); SqlDataAdapter da; DataSet ds; public DataSet getUsers(string sql) { sql = Common.Class1.sql_geta; SqlCommand cmd = new SqlCommand(sql, cn); da = new SqlDataAdapter(cmd); ds = new DataSet(); da.Fill(ds, Common.Class1.table_geta); return ds; } } } [/color] 界面代码:<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>无标题页</title> </head> <body> <form id="form1" runat="server"> <div> <asp:GridView ID="GridView1" runat="server"> </asp:GridView>
</div> </form> </body> </html> 该界面的后台代码: using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls;public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { DataAccess.Class1 dc = new DataAccess.Class1(); string sql = @"Common.Class1.sql_geta"; DataSet ds = dc.getUsers(sql); this.GridView1.DataSource = ds.Tables[0].DefaultView; this.GridView1.DataBind(); }} Web.config文件 <?xml version="1.0"?> <!-- 注意: 除了手动编辑此文件以外,您还可以使用 Web 管理工具来配置应用程序的设置。可以使用 Visual Studio 中的 “网站”->“Asp.Net 配置”选项。 设置和注释的完整列表在 machine.config.comments 中,该文件通常位于 \Windows\Microsoft.Net\Framework\v2.x\Config 中 --> <configuration> <appSettings/> <connectionStrings> <add name="c#ConnectionString" connectionString="Data Source=2012-20130305KU;Initial Catalog=c#;Integrated Security=True" providerName="System.Data.SqlClient"/> </connectionStrings> <system.web> <!-- 设置 compilation debug="true" 将调试符号插入 已编译的页面中。但由于这会 影响性能,因此只在开发过程中将此值 设置为 true。 --> <compilation debug="true"/> <!-- 通过 <authentication> 节可以配置 ASP.NET 使用的 安全身份验证模式, 以标识传入的用户。 --> <authentication mode="Windows"/> <!-- 如果在执行请求的过程中出现未处理的错误, 则通过 <customErrors> 节可以配置相应的处理步骤。具体说来, 开发人员通过该节可以配置 要显示的 html 错误页 以代替错误堆栈跟踪。 <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm"> <error statusCode="403" redirect="NoAccess.htm" /> <error statusCode="404" redirect="FileNotFound.htm" /> </customErrors> --> </system.web> </configuration>对应的表 USE [c#] GO /****** 对象: Table [dbo].[Customers] 脚本日期: 05/17/2013 19:59:27 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[Customers]( [ID] [nchar](10) COLLATE Chinese_PRC_CI_AS NOT NULL, [name] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL, CONSTRAINT [PK_Customers] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY] 这就是我调试成功的代码
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
DataAccess.Class1 dc = new DataAccess.Class1();
string sql = @"Common.Class1.sql_geta";
DataSet ds = dc.getUsers(sql);
this.GridView1.DataSource = ds.Tables[0].DefaultView;
this.GridView1.DataBind();
}}using System;
using System.Collections.Generic;
using System.Text;namespace Common
{
public class Class1
{
public const string ConnectString =
"server=localhost;database=NorthWind;user=mjc;password=123;"; public const string sql_geta = "select*from Customers"; public const string table_geta = "Customers";
}
}using System;
using System.Collections.Generic;
using System.Text;
using System.Data.SqlClient;
using System.Data;
namespace DataAccess
{ public class Class1
{ SqlConnection cn = new SqlConnection(Common.Class1.sql_geta);
SqlDataAdapter da;
DataSet ds;
public DataSet getUsers(string sql)
{ string sql =Common.Class1.sql_geta;
SqlCommand cmd = new SqlCommand(sql , cn);
da = new SqlDataAdapter(cmd);
ds = new DataSet();
da.Fill(ds, Common.Class1.table_geta);
return ds;
} }
}
namespace Common
namespace DataAccess
代码修改如下:
using System;
using System.Collections.Generic;
using System.Text;
using System.Data.SqlClient;
using System.Data;
using Common;namespace DataAccess
{ public class Class1
{ SqlConnection cn = new SqlConnection(Common.Class1.sql_geta);
SqlDataAdapter da;
DataSet ds;
public DataSet getUsers(string sql)
{ string sql =Common.Class1.sql_geta;
SqlCommand cmd = new SqlCommand(sql , cn);
da = new SqlDataAdapter(cmd);
ds = new DataSet();
da.Fill(ds, Common.Class1.table_geta);
return ds;
} }
}
你试试下面的
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Common;
namespace DataAccess;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
DataAccess.Class1 dc = new DataAccess.Class1();
string sql = @"Common.Class1.sql_geta";
DataSet ds = dc.getUsers(sql);
this.GridView1.DataSource = ds.Tables[0].DefaultView;
this.GridView1.DataBind();
}}
sql 哪来的
获取串
应为
SqlConnection cn = new SqlConnection(Common.Class1.ConnectString);
string sql;sql=Common.Class1.sql_geta;
修改代码如下:using System;
using System.Collections.Generic;
using System.Text;
using System.Data.SqlClient;
using System.Data;
namespace DataAccess
{ public class Class1
{
//SqlConnection cn = new SqlConnection(Common.Class1.sql_geta);
SqlConnection cn = new SqlConnection(Common.Class1.ConnectString); SqlDataAdapter da;
DataSet ds;
public DataSet getUsers(string sql)
{ string sql =Common.Class1.sql_geta;
SqlCommand cmd = new SqlCommand(sql , cn);
da = new SqlDataAdapter(cmd);
ds = new DataSet();
da.Fill(ds, Common.Class1.table_geta);
return ds;
} }
}
第二个 sql语句写正确 SELECT * FROM Table 记得词之间加空格
应该是string sql = Common.Class1.sql_geta;还有就是上面提到的,Common.Class1.sql_geta对应的字符串中是不是缺少空格呀。
{ string sql =Common.Class1.sql_geta;
无法编译吧?要学会调试程序才可以呀。
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;using System.Collections.Generic;
using System.Text;
namespace Common
{
public class Class1
{
// public const string ConnectString ="server=localhost;database=NorthWind;user=mjc;password=123;"; public const string connectionString="Data Source=2012-20130305KU;Initial Catalog=c#;Integrated Security=True" ;
public const string sql_geta = "select * from Customers";
public const string table_geta = "Customers";
}
}
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Collections.Generic;
using System.Text;
using System.Data.SqlClient;namespace DataAccess
{
public class Class1
{
[color=#FF0000] // SqlConnection cn = new SqlConnection(Common.Class1.sql_geta);
SqlConnection cn = new SqlConnection(Common.Class1.connectionString);
SqlDataAdapter da;
DataSet ds;
public DataSet getUsers(string sql)
{
sql = Common.Class1.sql_geta;
SqlCommand cmd = new SqlCommand(sql, cn);
da = new SqlDataAdapter(cmd);
ds = new DataSet();
da.Fill(ds, Common.Class1.table_geta);
return ds; } }
}
[/color]
界面代码:<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="GridView1" runat="server">
</asp:GridView>
</div>
</form>
</body>
</html>
该界面的后台代码:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{ DataAccess.Class1 dc = new DataAccess.Class1();
string sql = @"Common.Class1.sql_geta";
DataSet ds = dc.getUsers(sql);
this.GridView1.DataSource = ds.Tables[0].DefaultView;
this.GridView1.DataBind();
}}
Web.config文件
<?xml version="1.0"?>
<!--
注意: 除了手动编辑此文件以外,您还可以使用
Web 管理工具来配置应用程序的设置。可以使用 Visual Studio 中的
“网站”->“Asp.Net 配置”选项。
设置和注释的完整列表在
machine.config.comments 中,该文件通常位于
\Windows\Microsoft.Net\Framework\v2.x\Config 中
-->
<configuration>
<appSettings/>
<connectionStrings>
<add name="c#ConnectionString" connectionString="Data Source=2012-20130305KU;Initial Catalog=c#;Integrated Security=True" providerName="System.Data.SqlClient"/>
</connectionStrings>
<system.web>
<!--
设置 compilation debug="true" 将调试符号插入
已编译的页面中。但由于这会
影响性能,因此只在开发过程中将此值
设置为 true。
-->
<compilation debug="true"/>
<!--
通过 <authentication> 节可以配置 ASP.NET 使用的
安全身份验证模式,
以标识传入的用户。
-->
<authentication mode="Windows"/>
<!--
如果在执行请求的过程中出现未处理的错误,
则通过 <customErrors> 节可以配置相应的处理步骤。具体说来,
开发人员通过该节可以配置
要显示的 html 错误页
以代替错误堆栈跟踪。 <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
<error statusCode="403" redirect="NoAccess.htm" />
<error statusCode="404" redirect="FileNotFound.htm" />
</customErrors>
-->
</system.web>
</configuration>对应的表
USE [c#]
GO
/****** 对象: Table [dbo].[Customers] 脚本日期: 05/17/2013 19:59:27 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Customers](
[ID] [nchar](10) COLLATE Chinese_PRC_CI_AS NOT NULL,
[name] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL,
CONSTRAINT [PK_Customers] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
这就是我调试成功的代码