记录一些杂记吧

 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. 棋盘覆盖问题python3实现

    在2^k*2^k个方格组成的棋盘中,有一个方格被占用,用下图的4种L型骨牌覆盖全部棋盘上的其余全部方格,不能重叠. 代码例如以下: def chess(tr,tc,pr,pc,size): globa ...

  2. 去除iframe滚动条1

    主页面的IFRAME中添加:scrolling="yes" 子页面程序代码: 让竖条消失: <body style='overflow:scroll;overflow-x:a ...

  3. [JZOJ 5852] [NOIP2018提高组模拟9.6] 相交 解题报告 (倍增+LCA)

    题目链接: http://172.16.0.132/senior/#main/show/5852 题目: 题目大意: 多组询问,每次询问树上两条链是否相交 题解: 两条链相交并且仅当某一条链的两个端点 ...

  4. JavaScript学习记录四

    title: JavaScript学习记录四 toc: true date: 2018-09-16 20:31:22 --<JavaScript高级程序设计(第2版)>学习笔记 要多查阅M ...

  5. Elasticsearch之中文分词器插件es-ik的自定义热更新词库

    不多说,直接上干货! 欢迎大家,关注微信扫码并加入我的4个微信公众号:   大数据躺过的坑      Java从入门到架构师      人工智能躺过的坑         Java全栈大联盟       ...

  6. mysql 字符串的处理

    1.SUBSTRING 2.SUBSTRING_INDEX 3. right/left 4.POSITION sql实例 select left(right(SUBSTRING_INDEX(data_ ...

  7. 【英雄会】微软题目:几个bing

    今天是元旦,开篇先祝福大家在新的一年心想事成,工作顺利,开心生活每一天 . 看到[英雄会]上出现了微软出的题目:几个bing,题目内容如下: 本届大赛由微软必应词典冠名,必应词典(Bing Dicti ...

  8. sql server 去掉某字段左边的0

    比如:将以下Code字段 Code 000 001 002 ... 009 010 依次去掉左边的0,000替换为0,001替换为1,010替换为10,以此类推 Code 0 1 2 ... 9 10 ...

  9. Gram矩阵 迁移学习 one-shot 之类

    格拉姆矩阵是由内积空间中的向量两两内积而得.格拉姆矩阵在向量为随机的情况下也是协方差矩阵.每个数字都来自于一个特定滤波器在特定位置的卷积,因此每个数字代表一个特征的强度,而Gram计算的实际上是两两特 ...

  10. Codeforces 982 C. Cut 'em all!(dfs)

    解题思路: 代码中有详细注解,以任意一点为根,dfs遍历这棵树. 每一个节点可能有好几个子树,计算每棵子树含有的节点数,再+1即为这整棵树的节点. 判断子树是否能切断与根之间的联系,如果子树含有偶数个 ...