mysql存储过程的写法

1、 DropDownList 绑定数据后 设置另外的默认值

  private void dropdown()

        {

            

                cm_serviceEntity model = new cm_serviceEntity();

                DataSet ds = GeneralServiceProxy.SelectData(model, "activityid in('1')");

                this.Dropcategory.DataSource = ds.Tables[0];

                

                this.Dropcategory.DataTextField="serviceName";                                                                                            

                this.Dropcategory.DataValueField = "serviceID";

                this.Dropcategory.DataBind();

               this.Dropcategory.Items.Insert(0, new ListItem("--请选择--"""));

                this.Dropcategory.SelectedItem.Selected = true

           

        }

 

2存储过程

 

DELIMITER $$

 

DROP PROCEDURE IF EXISTS `ovps`.`pro_post_get`$$

 

CREATE DEFINER=`root`@`%` PROCEDURE `pro_post_get`(

in pi_chv_xml_model VARCHAR(1000), 

in pi_int_pageindex int,

in pi_int_pagesize int,

in pi_chv_str_order varchar(20),

in pi_int_order int,

inout po_int_recoadcount int

)

begin 

declare v_sql_query VARCHAR(4000);

declare v_sql_where VARCHAR(2000);

declare v_sql_count VARCHAR(2000);

declare v_id int;

declare v_name varchar(50);

declare v_communityid int;

declare v_categoryid int;

        declare v_serviceid int;

        declare v_activityid int;

declare v_title varchar(50);

declare v_begintime varchar(50);

declare v_endtime varchar(50);

declare v_state varchar(10);

declare v_limitStart int;

declare v_limitEnd int;

declare v_categoryids varchar(10);

declare v_order_where varchar(180);

declare v_asc_desc_where varchar(10);

set v_id = ExtractValue(pi_chv_xml_model, '/root/item[1]/@id') ;

set v_name = ExtractValue(pi_chv_xml_model, '/root/item[1]/@name') ; 

set v_communityid = ExtractValue(pi_chv_xml_model, '/root/item[1]/@communityid') ; 

set v_categoryid = ExtractValue(pi_chv_xml_model, '/root/item[1]/@categoryid') ; 

set v_serviceid = ExtractValue(pi_chv_xml_model, '/root/item[1]/@serviceid') ; 

set v_activityid = ExtractValue(pi_chv_xml_model, '/root/item[1]/@activityid') ; 

set v_title = ExtractValue(pi_chv_xml_model, '/root/item[1]/@title') ; 

set v_begintime = ExtractValue(pi_chv_xml_model, '/root/item[1]/@begintime') ; 

set v_endtime = ExtractValue(pi_chv_xml_model, '/root/item[1]/@endtime') ; 

set v_state = ExtractValue(pi_chv_xml_model, '/root/item[1]/@state') ; 

set v_categoryids = ExtractValue(pi_chv_xml_model,'/root/item[1]/@categoryids');

set v_sql_where = ' where 1 = 1 ';

set v_order_where='';

if v_id is not null and v_id > 0 then

set v_sql_where = CONCAT(v_sql_where,' and cm_post.id = ',v_id); 

end if;

 

if v_name is not null and length(v_name) > 0 then

set v_sql_where = CONCAT(v_sql_where,' and cm_post.name = ',v_name); 

end if;

if v_communityid is not null and v_communityid > 0 then

set v_sql_where = CONCAT(v_sql_where,' and cm_post.communityid = ',v_communityid); 

end if;

if v_categoryid is not null and v_categoryid > 0 then

set v_sql_where = CONCAT(v_sql_where,' and cm_post.categoryid=',v_categoryid); 

end if;

if v_title is not null and length(v_title) > 0 then

set v_sql_where = CONCAT(v_sql_where,' and cm_post.like=''',v_title,''''); 

end if;

if v_begintime is not null and length(v_begintime) > 0 then

set v_sql_where = CONCAT(v_sql_where,' and cm_post.createtime >= ',v_begintime,' and cm_post.createtime <= ',v_endtime); 

end if;

if v_state is not null and length(v_state) > 0 then

set v_sql_where = CONCAT(v_sql_where,' and cm_post.state >= ',v_state); 

        end if;

if v_categoryids is not null and length(v_categoryids) >0 then

set v_sql_where = CONCAT(v_sql_where,' and cm_post.categoryid in (',v_categoryids,')');

end if;

if pi_int_order is not null and pi_int_order < 0 then

set v_asc_desc_where = ' desc';

end if;

if pi_int_order is not null and pi_int_order > 0 then

set v_asc_desc_where = ' asc';

end if;

if pi_chv_str_order is not null and length(pi_chv_str_order) > 0 then

set v_order_where=CONCAT(v_order_where,' order by cm_post.IsTop desc , cm_post.',pi_chv_str_order,v_asc_desc_where); 

end if;

if pi_int_pagesize < 0 then

set v_sql_query = CONCAT(

'select cm_post.*,t1.CategoryName,c.CommunityName,sm.Username,

     se.ServiceName,ac.ActivityName  

from cm_post 

left join cm_contentcategory t1

on cm_post.categoryid = t1.id

left join co_community c

on cm_post.communityid = c.id 

left join sm_admin sm

on cm_post.CreateUserID=sm.id 

        left join cm_service se

        on cm_post.ServiceID = se.ServiceID

        left join cm_activity ac

        on se.ActivityID=ac.ActivityID '

,v_sql_where,v_order_where);

end if;

if pi_int_pagesize > 0 then

SET v_limitStart = (pi_int_pageindex - 1)*pi_int_pagesize;

SET v_limitEnd = pi_int_pageindex*pi_int_pagesize - 1; 

set v_sql_query = CONCAT(

'select cm_post.*,t1.CategoryName,c.CommunityName,sm.Username,se.ServiceName,ac.ActivityName 

from cm_post 

left join cm_contentcategory t1

on cm_post.categoryid = t1.id

left join co_community c

on cm_post.communityid = c.id 

left join sm_admin sm

on cm_post.CreateUserID=sm.id

        left join cm_service se

        on cm_post.ServiceID = se.ServiceID

        left join cm_activity ac

        on se.ActivityID=ac.ActivityID '

,v_sql_where,v_order_where

,' limit ',v_limitStart,',',v_limitEnd);

end if; 

    

set @v_sql_query = v_sql_query;

-- select @v_sql_query ;

PREPARE s_cnt from @v_sql_query;

EXECUTE s_cnt;

DEALLOCATE PREPARE s_cnt; 

if (po_int_recoadcount = 0) then 

set v_sql_count = CONCAT('select count(1) into',po_int_recoadcount,' from cm_post 

left join cm_contentcategory t1

on cm_post.categoryid = t1.id

left join co_community c

on cm_post.communityid = c.id ', v_sql_where);

set @v_sql_count = v_sql_count;

PREPARE s_cnt from @v_sql_count;

EXECUTE s_cnt;

DEALLOCATE PREPARE s_cnt; 

 

end if;

end$$

 

DELIMITER ;

 

 

 

 

 public DataSet PostInfoList(string model_xml, int page_index, int page_size, string columunorder, int order, ref int total_recoad_count)

        {

            DataSet ds = new DataSet();

            MySqlParameter param1 = new MySqlParameter();

            param1.ParameterName = "@pi_chv_xml_model";

            param1.MySqlDbType = MySqlDbType.String;

            param1.Value = model_xml;

 

            MySqlParameter param2 = new MySqlParameter();

            param2.ParameterName = "@pi_int_pageindex";

            param2.MySqlDbType = MySqlDbType.Int32;

            param2.Value = page_index;

 

            MySqlParameter param3 = new MySqlParameter();

            param3.ParameterName = "@pi_int_pagesize";

            param3.MySqlDbType = MySqlDbType.Int32;

            param3.Value = page_size;

 

            MySqlParameter param4 = new MySqlParameter();

            param4.ParameterName = "@po_int_recoadcount";

            param4.MySqlDbType = MySqlDbType.Int32;

            param4.Direction = ParameterDirection.InputOutput;

            param4.Value = total_recoad_count;

 

            MySqlParameter param5 = new MySqlParameter();

            param5.ParameterName = "@pi_chv_str_order";

            param5.MySqlDbType = MySqlDbType.VarChar;

            param5.Value = columunorder;

 

            MySqlParameter param6 = new MySqlParameter();

            param6.ParameterName = "@pi_int_order";

            param6.MySqlDbType = MySqlDbType.Int32;

            param6.Value = order;

 

            try

            {

                MySqlParameter[] param = new MySqlParameter[] { param1, param2, param3, param4,param5,param6 };

   ds=SqlHelper.GetDataSet(CommandType.StoredProcedure,pro_post_get", param);

                if (ds.Tables[1] != null)

                {

                    total_recoad_count = int.Parse(ds.Tables[1].Rows[0][0].ToString());

                }

            }

            catch (Exception ex)

            {

                throw ex;

            }

            LogInfo("[end]");

            return ds; 

        }

 

 

 

DataSet PostInfoList(string model_xml, int page_index, int page_size, string columunorder, int order, ref int total_recoad_count);

 

 

 public static DataSet PostInfoList(string xml, int pageindex, int pagesize, string record, int order, ref int recoadcount)

        {

            return CreateClient().PostInfoList(xml, pageindex, pagesize, record, order, ref recoadcount);

        }

 

 

定义一个绑定grideView的方法 

private void getdate()

        {

            string xml = string.Format("<root><item categoryid=\"{0}\" /></root>""邻里驿站");

            DataSet ds = CMProxy.PostInfoList(xml,ctl_pages1.PageIndex, ctl_pages1.PageSize, "createtime", -1, ref total);

            ctl_pages1.Count = total;

            if (ds.Tables[0].Rows.Count == 0)

            {

                ds.Tables[0].Rows.Add(ds.Tables[0].NewRow());

                GridView1.DataSource = ds;

                GridView1.DataBind();

                int columnCount = GridView1.Rows[0].Cells.Count;

                GridView1.Rows[0].Cells.Clear();

                GridView1.Rows[0].Cells.Add(new TableCell());

                GridView1.Rows[0].Cells[0].ColumnSpan = columnCount;

                GridView1.Rows[0].Cells[0].Text="没有数据信息";

GridView1.RowStyle.HorizontalAlign=System.Web.UI.WebControls.HorizontalAlign.Center;

            }

            else

            {

                this.GridView1.DataSource = ds.Tables[0];

                this.GridView1.DataBind();

            }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: MySQL 存储过程写法如下所示: CREATE PROCEDURE procedure_name (IN param1 datatype1, IN param2 datatype2, ..., OUT result_name datatype) BEGIN -- 写入存储过程的处理逻辑 -- 可以使用 IF、CASE、LOOP、WHILE 等语句 -- 最后将结果存储到 result_name 中 END; 其中,procedure_name 为存储过程的名称,param1、param2 等为存储过程的输入参数,result_name 为存储过程的输出参数。在 BEGIN 和 END 之间编写存储过程的处理逻辑,最后将结果存储到输出参数中,以便后续使用。 ### 回答2: MySQL存储过程是一组预先编译好的SQL语句。它们被存储在数据库中,并可以通过调用来执行。MySQL存储过程写法如下: 1. 创建存储过程: 使用 `CREATE PROCEDURE` 语句创建存储过程。例如,如果要创建一个名为 `myprocedure` 的存储过程,可以使用以下语法: ``` CREATE PROCEDURE myprocedure() BEGIN -- 写入存储过程的SQL语句 -- ... END; ``` 2. 存储过程参数: 存储过程可以接受输入参数和输出参数,以便传递数据。以下是定义存储过程参数的语法: ``` CREATE PROCEDURE myprocedure(IN input_param INT, OUT output_param INT) BEGIN -- 使用 input_param 和 output_param 进行操作 -- ... END; ``` 在存储过程中使用 `IN` 关键字定义输入参数,并使用 `OUT` 关键字定义输出参数。 3. 存储过程内容: 在 `BEGIN` 和 `END` 关键字之间,可以编写一系列SQL语句来定义存储过程的功能。这些语句可以包含条件、循环、查询和其他SQL操作。 例如,以下存储过程通过将两个参数相加,并将结果存储到输出参数中: ``` CREATE PROCEDURE myprocedure(IN a INT, IN b INT, OUT result INT) BEGIN SET result = a + b; END; ``` 4. 调用存储过程: 要调用存储过程,可以使用 `CALL` 语句,后跟存储过程的名称和参数列表。例如,调用上面创建的存储过程可以使用以下语法: ``` CALL myprocedure(3, 4, @output); ``` 在这个例子中,存储过程的输入参数分别为3和4,结果存储在 `@output` 变量中。 以上是MySQL存储过程的一般写法存储过程为我们提供了一种方便的方式来存储和执行复杂的数据库操作,提高了数据库的可维护性和可重用性。 ### 回答3: MySQL存储过程是一组预先编译的SQL语句,通过调用存储过程来执行这些SQL语句。MySQL存储过程具有以下写法: 1. 创建存储过程: 使用CREATE PROCEDURE语句创建存储过程,语法如下: CREATE PROCEDURE procedure_name ([parameter_list]) [characteristics] stored_procedure_body 其中,procedure_name是存储过程的名称,parameter_list是存储过程的参数列表,characteristics是字符集、安全性等特性,stored_procedure_body是存储过程的具体实现代码。 2. 删除存储过程: 使用DROP PROCEDURE语句删除存储过程,语法如下: DROP PROCEDURE [IF EXISTS] procedure_name 其中,procedure_name是要删除的存储过程的名称。IF EXISTS是可选的,表示当存储过程不存在时不会产生错误。 3. 编辑存储过程: 使用ALTER PROCEDURE语句编辑存储过程,语法如下: ALTER PROCEDURE procedure_name ([parameter_list]) [characteristics] stored_procedure_body 其中,procedure_name是要编辑的存储过程的名称,parameter_list是存储过程的参数列表,characteristics是字符集、安全性等特性,stored_procedure_body是存储过程的新实现代码。 4. 执行存储过程: 使用CALL语句执行存储过程,语法如下: CALL procedure_name([parameters]) 其中,procedure_name是要执行的存储过程的名称,parameters是存储过程的参数列表。 总结来说,MySQL存储过程写法包括创建、删除、编辑和执行四个步骤。创建存储过程使用CREATE PROCEDURE语句,删除存储过程使用DROP PROCEDURE语句,编辑存储过程使用ALTER PROCEDURE语句,执行存储过程使用CALL语句。同时,存储过程可以带有参数,通过参数列表进行传递。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值