❶ 在ASP.NET中,如何让使用C#语言来连接sql SERVER数据库并对数据库进行基本的增删查改操作
landy543210 的回答是对的,不过有些问题:
1、很显然LZ在web应用程序上是新人,直接给代码LZ可能不大明白;
2、LZ的是web应用程序,所以MessageBox就不要用了,要的话自己封装一个;
3、使用sql数据库的连接与命令,需添加引用
using System.Data.SqlClient;
4、LZ添加自己的页面控件与处理代码后,然后将
landy543210的代码在修改下以符合自己的业务需求,然后去掉消息框部分,再添加到自己的响应事件中,比如button_click
❷ 在asp.net(c#)中如何用sql语句调用服务器端的存储过程
如果已知了
服务器端
有你需要的
存储过程
,则第一步需要使你的程序和服务器先建立起连接,连接成功之后可以写一个
sql语句
:exec
存储过程名(不带参的存储过程)就行了,当然这些可以在你的程序里写也可以在你的程序里写语句用来调用完成上述sql语句的存储过程名即把上面的exec
存储过程名
封装在另一个存储过程里,在程序里通过.net
里的
sqlcommand
和
sqlconnection
类来实现完成上面所述的语句
❸ ASPNET怎样调用一个存储过程(带参数的)
ASPNET怎样调用一个存储过程(带参数的)使用的是Ado.NET中的相关的数据库操作方法。
Ado.NET连接数据库有以下几个步骤:
1:使用配置的数据库连接串,创建数据库连接 Connection 对象
2:构建操作的sql语句
3:定义command对象
4:打开数据连接
5:执行命令
举一个例子,删除操作
public int DeleteStudent3(int stuID)
{
int result = 0;
using (SqlConnection connection = new SqlConnection(connString))
{
SqlCommand objCommand = new SqlCommand(dboOwner + ".usp_DeleteStudent", connection);
objCommand.CommandType = CommandType.StoredProcere;
objCommand.Parameters.Add("@stuID", SqlDbType.Int).Value = stuID;
connection.Open();
result = objCommand.ExecuteNonQuery();
}
return result;
}
❹ asp C#Web,向sql插入数据,不使用存储过程的话有必要用Parameters属性吗,
强烈推荐使用Parameter,不要自己拼接sql,一来提高效率,二来避免注入攻击
比如
string sql = "select * from tb where name='"+ abc + "'";//abc 可以改成 ' or 1=1就可以攻击了
参考存储过程写:
string sql = "select * from tb wherename=@name";
command.Parameters.Add(
你帖出来的代码,就是最优写法了,要知道,任何两条sql,即使仅仅大小写不同,或仅多一个空格,都被认为是不同的sql,不会重用执行计划缓存,所以效率低,用参数化,就保证是同一个sql,效率提升了
而且拼接sql还会导致上面说的注入攻击
❺ asp.net c#调用类访问数据库
数据层还需要函数,否则你这个结构就不叫三层结构了,你这个函数应该是在数据访问层里到,数据访问层返回给逻辑层的数据不应该是SqlDataReader对象,你可以选择返回String[],List<....>,HashTable等。
数据访问层:
给你几个我的函数吧:
public
static
void
Open()
{
if
(con.State
==
ConnectionState.Closed)
{
con.Open();
}
}
public
static
void
Close()
{
if
(con.State
==
ConnectionState.Open)
{
con.Close();
}
}
public
static
SqlCommand
CreateCommand(string
sql)
{
return
new
SqlCommand(sql,
con);
}
public
static
List<string>
RunSQLReturnList(string
sql)
{
List<string>
info
=
new
List<string>();
SqlCommand
cmd
=
CreateCommand(sql);
Open();
SqlDataReader
sdr
=
cmd.ExecuteReader();
while
(sdr.Read())
{
for
(int
i
=
0;
i
<
sdr.FieldCount;
i++)
{
info.Add(sdr.GetName(i).ToString());
info.Add(sdr.GetValue(i).ToString());
}
}
Close();
return
info;
}
public
static
Hashtable
RunSQLReturnHashTable(string
sql)
{
List<string>
lt
=
RunSQLReturnList(sql);
Hashtable
ht
=
new
Hashtable();
for
(int
i
=
0;
i
<
lt.Count;
i
+=
2)
{
ht[lt[i]]
=
lt[i
+
1];
}
return
ht;
}
数据访问层返回给逻辑层HashTable对象hashTable1:
user.username=hashTable1["Name"].ToString();
.........
逻辑层返回给表示层实体对象user
label1.text
=
user.UserName;
❻ ora-00911(PLSQL运行没问题),但是在VS(ASP.NET[C#])中使用sqldatasource报错。
请检查一下是不是日期转换格式不兼容,直接让系统进行日期转换。
select
min(datetime_)
as
开始日期,max(datetime_)
as
结束日期,t.bsc,sum(num5)
as
达标次数,sum(num)
as
总次数,sum(num5)/sum(num)
as
达标比例
from
SZDO.TBL_SINR_FREQ
t
where
datetime_
between
'2013-03-03'
and
'2013-03-03'
group
by
t.bsc
order
by
达标比例
desc
❼ ASP.NET中SqlClient的应用(C#)
以下是我自己的代码,截几段,自己看
public class DataBase
{
private string strConn;
private SqlConnection con;
//取得数据库连接
public DataBase(string type) //type 指定连到哪个数据库 {
strConn = ConfigurationSettings.AppSettings[type];
con=new SqlConnection(strConn);
}
public int Open()
{
try
{
con.Open();
return 0;
}
catch(System.Data.SqlClient.SqlException e)
{
con.Close();
throw new Exception(e.Message);
}
finally
{
}
}
public int Close()
{
try
{
con.Close();
return 0;
}
catch(System.Data.SqlClient.SqlException e)
{
con.Close();
throw new Exception(e.Message);
}
finally
{
}
}
//根据SqlCommand得到reader--需要先Open() 读完后再Close()
public SqlDataReader ExecuteCmd4Reader(SqlCommand cmd)
{
cmd.Connection=con;
try
{
SqlDataReader sdr=cmd.ExecuteReader();
return sdr;
}
catch(System.Data.SqlClient.SqlException e)
{
cmd.Dispose();
con.Close();
throw new Exception(e.Message);
}
finally
{
cmd.Dispose();
}
}
//
public int ExecuteCmdNonQuery(SqlCommand cmd)
{
//SqlConnection con = new SqlConnection(strConn);
cmd.Connection=con;
try
{
con.Open();
return cmd.ExecuteNonQuery();
}
catch(System.Data.SqlClient.SqlException e)
{
throw new Exception(e.Message);
}
finally
{
cmd.Dispose();
con.Close();
}
}
//执行SqlCommand得到结果集
public DataSet ExecuteCmd4DataSet(SqlCommand cmd)
{
SqlConnection con = new SqlConnection(strConn);
cmd.Connection=con;
try
{
con.Open();
SqlDataAdapter sda = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
sda.Fill(ds);
return ds;
}
catch(System.Data.SqlClient.SqlException e)
{
throw new Exception(e.Message);
}
finally
{
cmd.Dispose();
con.Close();
}
}
//执行SqlCommand得到唯一值
public object ExecuteCmdScalar(SqlCommand cmd)
{
SqlConnection con = new SqlConnection(strConn);
cmd.Connection=con;
try
{
con.Open();
return cmd.ExecuteScalar();;
}
catch(System.Data.SqlClient.SqlException e)
{
throw new Exception(e.Message);
}
finally
{
cmd.Dispose();
con.Close();
}
}
//执行几个语句组成的事务
public int ExecuteCmds(SqlCommand[] cmds)
{
SqlConnection con = new SqlConnection(strConn);
try
{
con.Open();
}
catch(System.Data.SqlClient.SqlException e)
{
throw new Exception(e.Message);
}
SqlTransaction trans = con.BeginTransaction();
try
{
foreach(SqlCommand cmd in cmds)
{
cmd.Connection = con;
cmd.Transaction = trans;
cmd.ExecuteNonQuery();
}
trans.Commit();
return 0;
}
catch(System.Data.SqlClient.SqlException e)
{
trans.Rollback();
throw new Exception(e.Message);
}
finally
{
con.Close();
}
}
//执行数据库操纵语句
public int ExecuteNonQuery(string strSQL)
{
SqlConnection con = new SqlConnection(strConn);
SqlCommand cmd = new SqlCommand(strSQL,con);
try
{
con.Open();
cmd.ExecuteNonQuery();
return 0;
}
catch(System.Data.SqlClient.SqlException e)
{
throw new Exception(e.Message);
}
finally
{
cmd.Dispose();
con.Close();
}
}
//执行几个语句组成的事务
public int ExecuteSqls(string[] strSQLs)
{
SqlConnection con = new SqlConnection(strConn);
SqlCommand cmd = new SqlCommand();
//int j=strSQLs.Length;
try
{
con.Open();
}
catch(System.Data.SqlClient.SqlException e)
{
throw new Exception(e.Message);
}
SqlTransaction trans = con.BeginTransaction();
try
{
cmd.Connection = con;
cmd.Transaction = trans;
foreach(string str in strSQLs)
{
cmd.CommandText = str;
cmd.ExecuteNonQuery();
}
trans.Commit();
return 0;
}
catch(System.Data.SqlClient.SqlException e)
{
trans.Rollback();
throw new Exception(e.Message);
}
finally
{
cmd.Dispose();
con.Close();
}
}
//执行查询语句得到结果集
public DataSet Execute4DataSet(string strSQL)
{
SqlConnection con = new SqlConnection(strConn);
try
{
con.Open();
SqlDataAdapter sda = new SqlDataAdapter(strSQL,con);
DataSet ds = new DataSet();
sda.Fill(ds);
return ds;
}
catch(System.Data.SqlClient.SqlException e)
{
throw new Exception(e.Message);
}
finally
{
con.Close();
}
}
}
///////////////////////////////////////////////////
使用:
DataBase db=new DataBase("....连接串");
string sql="select last_login,last_login_fail from admin where uid=@uid";
SqlCommand cmd=new SqlCommand(sql);
cmd.Parameters.Add("@uid",SqlDbType.Int).Value=Session["xxx"];
db.Open();
SqlDataReader sdr=db.ExecuteCmd4Reader(cmd);
if(sdr.Read())
{
this.lbl_lastlogin.Text=sdr.GetSqlDateTime(0).ToString();
this.lbl_lastfail.Text=sdr.GetSqlDateTime(1).ToString();
}
db.Close();
///////////////////////////////////////////
DataBase db=new DataBase("....连接串");
string sql;
int t;
t=page_size*(cur_page-1);
sql="查询语句"
+" and order_id< all (select top "+t.ToString()+" order_id from orders where uid=@uid order by order_id desc) order by order_id desc";
SqlCommand cmd=new SqlCommand(sql);
cmd.Parameters.Add("@uid",SqlDbType.Int).Value=Session["xxx"];
DataSet ds=db.ExecuteCmd4DataSet(cmd);
this.dgOrders.DataSource=ds;
this.dgOrders.DataBind();
/////////////////////
DataBase db=new DataBase("ConHouse");
string sql="update cor_user set page=@page where uid=@uid";
SqlCommand cmd=new SqlCommand(sql);
cmd.Parameters.Add("@page",SqlDbType.VarChar,32).Value=this.ddlTemplate.SelectedItem.Value;
cmd.Parameters.Add("@uid",SqlDbType.Int).Value=Session["xxx"];
db.ExecuteCmdNonQuery(cmd);
///////////////////
DataBase db=new DataBase("ConHouse");
SqlCommand[] cmds=new SqlCommand[2];
cmds[0]=new SqlCommand("delete from cor_color_template where uid=@uid");
cmds[0].Parameters.Add("@uid",SqlDbType.Int).Value=Session["xxx"];
cmds[1]=new SqlCommand("insert into cor_color_template values(@uid,@color_template)");
cmds[1].Parameters.Add("@uid",SqlDbType.Int).Value=Session["xxx"];
cmds[1].Parameters.Add("@color_template",SqlDbType.VarChar,32).Value=this.ddlTemplate.SelectedValue;
db.ExecuteCmds(cmds);
Response.Write("<script language=JavaScript>alert('颜色模板设置成功!');</script>");
❽ ASP.NET(C#)高手求救!
在Visual Studio 2005连接SQL Server 2000中,我们可能会知道,连接字符串会比较简单,一般远程连接的时候,只需要在Web.config文件配置如下:
<appSettings>
<add key="ConnectionString" value="server=(local);database=MyDb;uid=sa;pwd=sa;Max pool size=1000;Connect
Timeout=20"/>
</appSettings>
然后在代码中通过调用下面的语句就可以实现数据库的连接了。
SqlConnection conn = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
在此前提只需要把身份验证设置成为SQL Server和Windows验证就可以了。
而在SQL Server 2005中,如果直接这样操作就会报下面的错误:
在建立与服务器的连接时出错。在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。 (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接) 。
我们就需要单独对SQL Server 2005进行配置,步骤如下:
1.配置SQL Server外围应用服务器,开启SQL2005远程连接功能:
操作方式如下,点击“配置工具”->“SQL Server外围应用配置器”,然后在打开的窗口中选择“服务和连接的外围应用配置器”->然后选择Database Engine节点下的 “远程连接”,选择“本地连接和远程连接”,同时选择“同时使用TCP/IP和named pipes”,确定后然后需要重新启动数据库服务就可以了。
2.把登陆设置改为SQL Server 和 Windows 身份验证模式,具体设置如下:
打开SQL Server Management Studio管理器,点击服务器上面右键然后查看属性,在安全性选项里面对服务身份验证选择“SQL Server 和 Windows 身份验证模式”。
3.修改SQL Server sa的密码,体设置如下:
在SQL Server Management Studio管理器中,展开服务器上的“安全性”->登陆名->在sa帐号上点右键属性,这样在“常规”的选择页中更改sa登陆帐号的密码。 注意SQL Server2005中,不允许密码设置简单,否则会通不过。然后在选择页的“状态”的登录修改为启用。
4.数据库连接字符串:
数据库连接字符串有很多种,如:
Data Server=.\SQLEXPRESS;Initial Catalog=Northwind;User ID=sa;Password=sapassSql
Data Server=服务器名\SQLEXPRESS;Initial Catalog=Northwind;User ID=sa;Password= sapassSql
Data Server=localhost\SQLEXPRESS;Initial Catalog=Northwind;User ID=sa;Password= sapassSql
Data Server=.;Initial Catalog=Northwind;User ID=sa;Password= sapassSql
Data Server=服务器名;Initial Catalog=Northwind;User ID=sa;Password= sapassSql
具体的选择是和SQL Server2005的版本有关系,如果是SQL Server 2005 Express版本,则必须要有“\SQLEXPRESS”,因此如果字符串是定义为一个变量的时候应该写成Server=.\\SQLEXPRESS。
5.在.net2.0 Framework中注册SQL Server数据库:
找到.net2.0 Framework的安装路径,一般安装在 “C:\Windows\Microsoft.NET\Framework\v2.0.50727”目录下,然后在DOS中在指定目录下运行 “ASPNET_REGSQL”指令,就会出现ASP.NET SQL Server安装向导,点击“下一步”,然后选择“为应用程序服务配置SQL Server”,然后直接点击下一步,就会完成SQL Server注册界面。我们就会看到NorthWind数据库下面多了几张表。
6.设置web.config文件:
在应用程序中的web.config文件添加如下数据库连接的配置:
<connectionStrings>
<add name="ConnectionSqlServer" connectionString="Data Source= .\SQLEXPRESS;Initial Catalog=Northwind; User ID=sa;Password= sapassSql" providerName="System.Data.SqlClient"/>
</connectionStrings>
这样我们便在Visual Studio 2005中可以轻松的调用SQL Server的数据连接了。
现在我们来对上面所做的步骤来测试数据的连接,我们打开Visual Studio 2005,在视图的“服务器资源管理器”来添加SQL Server 2005的连接,通过输入服务器名称和对应的SQL Server身份验证的sa用户名密码后,选取对应的数据库,然后点击“测试连接”,就会成功的连接到数据库了。
❾ asp.net (C#) 平台下如何加密用户登录密码使用的是sql数据库,最好是能给出详细的步骤
有一个md5加密的方法
md5(获取到输入的密码,16)
16也可以是32 这是加密后的密码长度 然后把这个存进数据库,,,以后登陆
同样也是这样 加密 和已经存在数据库里的进行匹配,,如果想=就说明密码真确