记录一些杂记吧

 declare @d datetime
set @d=GETDATE() select * from [ACC_B2B].[dbo].ORDER_Head --where 1=1 select datediff(ms,@d,getdate()) --2453 --2406 给查询条件加上where 1=1 速度会快一点;

where 1=1

更多详细的看看这个sql语句中where 1=1和1=0的作用
里面的1=0快速建表:create table newtable as select * from oldtable where 1=0; 创建一个新表,而新表的结构与查询的表的结构是一样的。
 引用地址:http://www.398588.com/Article/T5/46.aspx
返回一个存储过程的返回值。
方法代码:
public int SqlParm(string cmdText,SqlParameter[] Prams) 
   {
     SqlConnection Conn = new SqlConnection(ConfigurationManager.ConnectionStrings[].ConnectionString);
     Conn.Open();
     SqlCommand Cmd = new SqlCommand(cmdText, Conn);
     Cmd.CommandType = CommandType.StoredProcedure;
     foreach (SqlParameter P in Prams) 
     {
       Cmd.Parameters.Add(P);
     }
     Cmd.Parameters.Add(new SqlParameter("Return", SqlDbType.Int, 4, ParameterDirection.ReturnValue, false, 0, 0, string.Empty, DataRowVersion.Default, null));
     Cmd.ExecuteNonQuery();
     int RowNum = int.Parse(Cmd.Parameters["Return"].Value.ToString());
     return RowNum;
   }
调用方法代码:
  SqlParameter[] Paramrs={new SqlParameter("@Q",SqlDbType.VarChar,50)};
  Paramrs[].Value = "abc"; //给@Q值。
 Response.Write(SqlParm("过程名称",Paramrs);
以上仅供参考,本站原创文章,如有转载请带链接注明出自 网络自由人 1 SqlParameter[] paras=
2 {
3 new SqlParameter("@name","这里应该放@name的类型")
4 };
5 SqlParameter parm = new SqlParameter("select_Con", "73468969715");
6 DataTable myset = ExecuteStoredProcedure("select_Con", parm);

SqlParameter

现在,我们要改写这样的语句,使用SqlParameter来做

SqlCommand SqlCmd = new SqlCommand(sql, SqlConn);

SqlParameter _userid = new SqlParameter("uid", SqlDbType.Int);

_userid.Value = Request.QueryString["u_id"];

SqlCmd.Parameters.Add(_userid);

  

    public static DataTable ExecuteStoredProcedure(string ProcNme, params SqlParameter[] paramemters)
{
SqlDataReader reader = null;
DataTable dt = new DataTable();
using (SqlConnection conn=new SqlConnection(ConfigurationManager.ConnectionStrings["Connection B2B"].ToString()))
{
conn.Open();
using (SqlCommand cmd=conn.CreateCommand())
{
SqlTransaction st = conn.BeginTransaction();
cmd.Transaction = st;
try
{
cmd.CommandText = ProcNme;// 存储过程与Command牵连在一起了
cmd.CommandType = CommandType.StoredProcedure;//command执行的类型是存储过程,不再是sql语句 cmd.Parameters.AddRange(paramemters);
reader = cmd.ExecuteReader();//返回发的是DataReader 下面的方法将reader转成datatable
dt= ConvertDataReaderToDataTable(reader);
return dt; //cmd.Parameters.AddRange(paras);
//SqlDataAdapter da = new SqlDataAdapter();
//da.SelectCommand = cmd;
//DataSet ds = new DataSet();
//da.Fill(ds, "StuInfo");
//dataGridView1.DataSource = ds.Tables["StuInfo"];
}
catch (Exception)
{ throw;
}
}
}
} public static DataTable ConvertDataReaderToDataTable(SqlDataReader reader)
{
try
{
DataTable objDataTable = new DataTable();
int intFieldCount = reader.FieldCount;
for (int intCounter = 0; intCounter < intFieldCount; ++intCounter)
{
objDataTable.Columns.Add(reader.GetName(intCounter), reader.GetFieldType(intCounter));
} objDataTable.BeginLoadData(); object[] objValues = new object[intFieldCount];
while (reader.Read())
{
reader.GetValues(objValues);
objDataTable.LoadDataRow(objValues, true);
}
reader.Close();
objDataTable.EndLoadData(); return objDataTable; }
catch (Exception ex)
{
throw new Exception("转换出错!", ex);
} }
   public override bool ValidateUser(string username, string password)
{
SqlConnection sqlconn = new SqlConnection("Data Source=12345;Initial Catalog=TestDB01;Integrated Security=True");
SqlCommand sqlcmd = new SqlCommand("select UserID, UserName from [UserInfo] where UserName = @userName and UserAge = @userAge", sqlconn);
try
{
sqlconn.Open();
sqlcmd.Parameters.Add(new SqlParameter("@userName", SqlDbType.NVarChar, 50));
11 sqlcmd.Parameters["@userName"].Value = username.Trim();
12 sqlcmd.Parameters.Add(new SqlParameter("@userAge", SqlDbType.SmallInt, 2));
13 sqlcmd.Parameters["@userAge"].Value = password; SqlDataReader sqlRd = sqlcmd.ExecuteReader();
if (sqlRd.HasRows)
{
return true;
} return false;
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
 public static DataTable SpReturnTable(string storedProcName, SqlParameter[] parameters, string connstring)
{
try
{
using (SqlConnection conStr = new SqlConnection(connstring))
{
DataTable dt = new DataTable();
conStr.Open();
SqlTransaction trans = null; //创建事务
trans = conStr.BeginTransaction();
try
{
SqlCommand comStr = new SqlCommand(storedProcName, conStr);
comStr.Transaction = trans;
comStr.CommandType = CommandType.StoredProcedure; //设置执行类型为存储过程
foreach (SqlParameter parameter in parameters)
{
comStr.Parameters.Add(parameter);
}
using (SqlDataAdapter sda = new SqlDataAdapter())
{
sda.SelectCommand = comStr;
sda.Fill(dt);
}
trans.Commit(); //提交事务
return dt;
}
catch (Exception ex)
{
string a = ex.Message;
trans.Rollback(); //回滚事务
return null;
}
finally
{
conStr.Close();
}
}
}
catch (Exception ex)
{
return null;
}
}

存储过程的调用和Parameters数组的调用的更多相关文章

  1. Atitit main函数的ast分析  数组参数调用的ast astview解析

    Atitit main函数的ast分析  数组参数调用的ast astview解析 1.1. Xxcls.main(new String[]{"","bb"}) ...

  2. 复习C语言系列二:动态调用函数指针数组

    a:用call_fun_ptr调用afun(),b:用call_fun_ptr调用bfun() a 请输入给您指定的函数输调用的参数 afun_par ------------------------ ...

  3. c扩展调用php的函数(调用实现php函数的c函数)

    上一次是写的c扩展调用c的标准函数,但是只能调用头文件中申明的函数,今天来说下c扩展调用实现php函数的c函数,比方说,c扩展要用到php中ip2long这个函数,但是c不可能去php中调用,肯定是去 ...

  4. C语言:将字符串中的字符逆序输出,但不改变字符串中的内容。-在main函数中将多次调用fun函数,每调用一次,输出链表尾部结点中的数据,并释放该结点,使链表缩短。

    //将字符串中的字符逆序输出,但不改变字符串中的内容. #include <stdio.h> /************found************/ void fun (char ...

  5. JS中的间歇(周期)调用setInterval()与超时(延迟)调用setTimeout()相关总结

    超时调用需要使用window.setTimeout(code,millisec)方法 它接受两个参数:要执行的代码和以毫秒表示的时间(即在执行代码前需要等待多少毫秒).其中第一个参数可以是一个包含JS ...

  6. Qt刷新机制的一些总结(Qt内部画的时候是相当于画在后台一个对象里,然后在刷新的时候调用bitblt统一画,调用window的api并不会影响到后面的那个对象)

    前段时间做过一个界面刷新的优化,遇到的坑比较多,在这里做一点点总结吧.     优化的方案是滚动滚动条的时候用截屏的方式代替界面全部刷新,优化完成后,界面在滚动时效率能提升大概一倍,背景介绍完毕.   ...

  7. Spring远端调用的实现-Spring Http调用的实现

    1:Spring Http设计思想 最近在研究公司自己的一套rpc远程调用框架,看到其内部实现的设计思想依赖于spring的远端调用的思想,所以闲来无事,就想学习下,并记录下. 作为spring远端调 ...

  8. Android开发中怎样调用系统Email发送邮件(多种调用方式)

    在Android中调用其他程序进行相关处理,几乎都是使用的Intent,所以,Email也不例外,所谓的调用Email,只是说Email可以接收Intent并做这些事情 我们都知道,在Android中 ...

  9. 调用start()方法和直接调用run()方法的区别

    调用start()方法和直接调用run()方法的区别 新建一个线程,只需要使用new关键字创建一个线程对象,并且调用start()方法即可. Thread thread = new Thread(); ...

随机推荐

  1. zzulioj--1600--直线与圆(简单数学几何)

     1600: 直线与圆 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 360  Solved: 73 SubmitStatusWeb Board ...

  2. MYSQL 5.7 MHA(GTID+ROW)部署及failover,online_change实战演练

    文章结构如下: 1.MHA简介 Masterhigh availability manager and toolsfor mysql,是日本的一位mysql专家采用perl语言编写的一个脚本管理工具, ...

  3. Kettle的改名由来

    不多说,直接上干货! 当时啊,因为很多开源项目到最后都成了无人管的项目,为了避免这种情况的发生,要尽快为Kettle项目构建一个社区.这就意味着,在随后的几年可能需要回答上千封的电子邮件和论坛帖子.幸 ...

  4. CSS3的常用属性(一)

    选择器 属性选择器(通过标签属性来选择) E[attr]: 表示只要元素<E>存在属性attr就能被选中  如: div[class] E[attr=val]: 表示元素<E> ...

  5. 简易的CSS下拉菜单 - 1

    <!DOCTYPE html> <html> <head> <style> body{ margin:0; } .dropmenu{ backgroun ...

  6. Servlet学习(三)——实例:用户登录并记录登陆次数

    1.前提:在Mysql数据库下建立数据库web13,在web13下创建一张表user,插入几条数据如下: 2.创建HTML文件,命名为login,作为登录界面(以post方式提交) <!DOCT ...

  7. Synchronization (computer science)

    过程同步.数据同步. In computer science, synchronization refers to one of two distinct but related concepts: ...

  8. NetworkX-画图

    参考:https://blog.csdn.net/qq951127336/article/details/54586869 1.创建图 networkx有四种图 Graph .DiGraph.Mult ...

  9. No mapping found for HTTP request with URI [/spring_liu/hello.do] in DispatcherServlet with name 'SpringMVC'

    控制台一直报No mapping found for HTTP request with URI [/spring_liu/hello.do] in DispatcherServlet with na ...

  10. TypeError: Cannot use 'in' operator to search for 'length' in....

    前台页面读取商品属性是字符串形式,数据库中存储商品属性是集合形式,前台数据存入数据库中数据格式会自动转,后台数据回显到前台数据格式需要手动转换,否则会报异常 错误信息提示: