当前位置:首页 » 操作系统 » 数据库传参函数

数据库传参函数

发布时间: 2022-11-16 11:39:39

数据库查询 怎样传递参数

String sql = String.Format("select * from Table_Stu Where substring (StuBirthday,1,4)=@year");
try
{
SqlDataAdapter da = new SqlDataAdapter(sql, new SqlConnection(ConnectionString));
da.SelectCommand.Parameters.AddWithValue(“@year”, tB_BirthScan.Text.Trim())
DataTable dt = new DataTable();
da.Fill(dt);
this.dataGridView_Show.DataSource =dt;
}
catch
{

}

❷ 函数传参规则

一 :

1,不可变类型的数据传参时,函数内部不会改变原数据的值!

2,可变类型的数据传参时,函数内部可以改变原数据

二:满足以下两个条件时,传参时不用返回值

1,传入了可变对象

2,修改了可变对象

❸ 怎么向数据库存语句中传参数

1 sql 语句定义为下文中的方式

执行sql 语句,传入相应的参数,就可以了

declare@sqlnvarchar(4000)
declare@fileInfoEvarchar(50)
set@sql='select*fromtablewherealike@fileInfo';

set@fileInfoE='%'+@fileInfoE+'%';

execsp_executesql@sql,N'@fileInfovarchar(50)
',@fileInfo=@fileInfoE

❹ mysql数据库函数的参数怎么使用

请在函数名后面的圆括号里填写参数,函数名(参数1,参数2,...参数n), 具体的用法请参考用户手册。
例如:
select month(now()),left(sname,1),length('abcd') from student;

❺ MSSQL数据库 :如何给 存储过程中的 IN() 传递参数,谁能够帮忙修改一些。

中的项不固定大小,应该选一个足够大的值,varchar(1000)
CREATE PROCEDURE [dbo].[Stat_MultiplesLoadByUnionAll]
( @Cells nvarchar(255),@name1 varchar(1000) )
as
begin
if (@name1 <>'' or @name1 is not null)
begin
select @UnionTable=isnull(@UnionTable+' union all select '+@Cells+' from ',' select '+@Cells+' from ) +quotename(Name) from sysobjects where OBJECTPROPERTY(id, N'IsUserTable') = 1 and name in (' + @name1 =')'
end

end

--注意@name1 传入的格式 是'tab1','tab2','tab3'................ 这样的,才能拼对

❻ Mysql数据库中FIND_IN_SET();在HIbernate中怎么使用。比如,如何传参;

其实是可以使用的,我今天就遇到这个问题,但是必须 这么用 :
在jdbc的SQL中可以不用写比较符,比如:

select * from t_user where find_in_set('zs',username) ;

当然也可以这样用:

select * from t_user where find_in_set('zs',username)>0

而在hibernate的HQL语句中,必须这样用:

from User u where find_in_set('zs',u.username)>0 ;

即‘>0’必须带上,否则会报错。

如果使用动态参数:

Map par = new HashMap();

par.put("buying_patterns", buying_patterns);
Hibernate hql语句 find_in_set 用法
gqo.addQuery("find_in_set(:buying_patterns,obj.buying_patterns)>0", par);

说明:1:buying_patterns buying_patterns 要传的属性值(:表示占位符)
2.obj.buying_patterns 表名.属性名

❼ oracle 传参 存储过程 或 函数

create or replace procere my_pro(ch out varchar2) is
cou integer;
cou
begin
ch:='';
cou:=0;
for cx in (select * from 检查表) loop
select count(1) into cou from 参照表 where 参照表字段=cx.检查表的字段;
if(cou=0)
ch:=ch||‘,’||cx.检查表的字段;
end loop;
end my_pro;
这样不知道满足吗?你把上面的表和字段改成你的表的;试试可以吗 我没执行过

❽ mysql 语句 怎样传递一个函数的参数

CREATE FUNCTION `fristPinyin`(P_NAME VARCHAR(255)) RETURNS varchar(255) CHARSET utf8
BEGIN
DECLARE V_RETURN VARCHAR(255);
SET V_RETURN = ELT(INTERVAL(CONV(HEX(left(CONVERT(P_NAME USING gbk),1)),16,10),
0xB0A1,0xB0C5,0xB2C1,0xB4EE,0xB6EA,0xB7A2,0xB8C1,0xB9FE,0xBBF7,
0xBFA6,0xC0AC,0xC2E8,0xC4C3,0xC5B6,0xC5BE,0xC6DA,0xC8BB,
0xC8F6,0xCBFA,0xCDDA,0xCEF4,0xD1B9,0xD4D1),
'A','B','C','D','E','F','G','H','J','K','L','M','N','O','P','Q','R','S','T','W','X','Y','Z');
RETURN V_RETURN;
END
pinyin :此函数是将一个中文字符串对应拼音母的每个相连 (例如:"中国人"->ZGR)
复制代码 代码如下:

CREATE FUNCTION `pinyin`(P_NAME VARCHAR(255)) RETURNS varchar(255) CHARSET utf8
BEGIN
DECLARE V_COMPARE VARCHAR(255);
DECLARE V_RETURN VARCHAR(255);
DECLARE I INT;
SET I = 1;
SET V_RETURN = '';
while I < LENGTH(P_NAME) do
SET V_COMPARE = SUBSTR(P_NAME, I, 1);
IF (V_COMPARE != '') THEN
#SET V_RETURN = CONCAT(V_RETURN, ',', V_COMPARE);
SET V_RETURN = CONCAT(V_RETURN, fristPinyin(V_COMPARE));
#SET V_RETURN = fristPinyin(V_COMPARE);
END IF;
SET I = I + 1;
end while;
IF (ISNULL(V_RETURN) or V_RETURN = '') THEN
SET V_RETURN = P_NAME;
END IF;
RETURN V_RETURN;
END

示例:
复制代码 代码如下:

mysql> select p.province, fristPinyin(p.province), pinyin(p.province) from province p;
+------------------+-------------------------+--------------------+
| province | fristPinyin(p.province) | pinyin(p.province) |
+------------------+-------------------------+--------------------+
| 北京市 | B | BJS |
| 天津市 | T | TJS |
| 河北省 | H | HBS |
| 山西省 | S | SXS |
| 内蒙古自治区 | N | NMGZZQ |
+------------------+-------------------------+--------------------+
5 rows in set

❾ C++的函数传参可以是些什么

先说一个东西,访问变量有三种方式,直接访问,指针访问,引用访问

inti(0),*p=&i,&j=i;
i=1;//直接访问,此时i=1
*p=1;//指针访问,此时i=1
j=1;//引用访问,此时i=1

所以函数传参时要想改变变量的值,有上面三种方式,对应的为:

值传参,这个不用多少

voidfoo(intj){}//inti(0);foo(i);

地址传参,即传递指针,被调用函数中对形参指针所指向的地址中内容的改变才会影响到实参。

voidfoo(int*p){*p=1;}//这样才能改变p指向的i的值;
inti(0);foo(&i);

引用传参,即传递引用,引用与指针最大的区别是,引用不是对象,只是引用对象的“别名”,所以在被调用函数中对引用的形参改变就能对实参作用

voidfoo(int&j){j=1;}//此时i相应变为1

inti(0);foo(i);

另外提一下:数组在函数传参时会自动转化为首地址指针。

❿ 关于java的传参,牵涉到数据库~~~~~~~~~~~

首先你可以使用PreparedStatement这个类,用法如下——
Connection con ;(创建数据库链接)
PreparedStatement ps = con.prepareStatement("select * from Book where title=?");
ps.setString(1, "title");
ps.execute();

用法就是这样,这个比Statement类要安全点。。。。

置于你的第一个方法重载的问题,你可以定义这样的方法,search(int i, String... args)。。。

这是一种可变参数列表用法,前面的参数i,表示你要调用哪个SQL语句,直接用switch来进行帅选就行了;后面的args其实是个数组,用来存储你传进去的参数。。。。

例如这样search(1, "king", "book"),这样就相当于调用1号SQL语句,作者名为king,书名为book,当然,这样的设定由你自己来确定,如下——
public void search(int i, String... args) {
String sql = null;
switch(i) {
case 1:sql = "select * from Book where author=? and book=?";break;
}
//接着就可以使用PreparedStatement类来查询数据了
}

可能我说的不太清楚,你查询一下PreparedStatement的用法,还有Java可变参数列表的用法,这样能很好地解决你的问题。。。。

总的来说,你的SQL语句可以多变的,而整个方法的结构可以不用改变,只要执行不同的SQL语句就能得到不同的结果。。。。

希望这些对你有帮助,可以上Q找我,410430209,呵呵。。。。

热点内容
内置存储卡可以拆吗 发布:2025-05-18 04:16:35 浏览:336
编译原理课时设置 发布:2025-05-18 04:13:28 浏览:378
linux中进入ip地址服务器 发布:2025-05-18 04:11:21 浏览:612
java用什么软件写 发布:2025-05-18 03:56:19 浏览:32
linux配置vim编译c 发布:2025-05-18 03:55:07 浏览:107
砸百鬼脚本 发布:2025-05-18 03:53:34 浏览:944
安卓手机如何拍视频和苹果一样 发布:2025-05-18 03:40:47 浏览:740
为什么安卓手机连不上苹果7热点 发布:2025-05-18 03:40:13 浏览:803
网卡访问 发布:2025-05-18 03:35:04 浏览:511
接收和发送服务器地址 发布:2025-05-18 03:33:48 浏览:371