初学c# -- 学习笔记(9) 关于SQL2008
在做一个局域网的类似网盘的学习练习,服务端差不多了,在改bug。用vlc的dll做的全格式视频、音频预览在线播放下载等等。
在做服务端也遇到了一些问题,走了好多弯路。
开始把上传的视频、音频、图像、文件等已二进制存放到数据库里,播放二进制流,做成了,结果。。数据库那个慢啊,最后放本地硬盘了。
在服务端数据库文件记录管理批量处理上又学了一些,主要靠存储过程来批量处理记录:

建立2个函数
USE [Transmis]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER function [dbo].[Get_StrArrayLength]
(
@str varchar(1024),
@split varchar(10)
)
returns int
as
begin
declare @location int
declare @start int
declare @length int
set @str=ltrim(rtrim(@str))
set @location=charindex(@split,@str)
set @length=1
while @location<>0
begin
set @start=@location+1
set @location=charindex(@split,@str,@start)
set @length=@length+1
end
return @length
end
USE [Transmis]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER function [dbo].[Get_StrArrayStrOfIndex]
(
@str varchar(1024),
@split varchar(10),
@index int
)
returns varchar(1024)
as
begin
declare @location int
declare @start int
declare @next int
declare @seed int
set @str=ltrim(rtrim(@str))
set @start=1
set @next=1
set @seed=len(@split)
set @location=charindex(@split,@str)
while @location<>0 and @index>@next
begin
set @start=@location+@seed
set @location=charindex(@split,@str,@start)
set @next=@next+1
end
if @location =0 select @location =len(@str)+1
return substring(@str,@start,@location-@start)
end
再写存储过程
USE [Transmis]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[Files_Delete]
@s_id varchar(1024)
as
declare @next int
set @next=1
while @next<=dbo.Get_StrArrayLength(@s_id,'$')
begin
DELETE FROM Trans_File WHERE id = dbo.Get_StrArrayStrOfIndex(@s_id,'$',@next)
set @next=@next+1
end
在C#里面传递参数调用就可以批量删除了
if (form6.DialogResult == DialogResult.OK)
{
for (int i = 0; i < das_cont.Rows.Count; i++)
{
if (conter_Panel.Controls[i].Tag.ToString() != "Normal")
{
del_id += conter_Panel.Controls[i].Tag.ToString() + "$";
string extname = Path.GetExtension(conter_Panel.Controls[i].Name); if (String.Compare(extname, ".mp3", true) == 0) //删除强制的mp3音频文件
{
dirpath = @"\audio";
}
else //删除强制的mp4视频文件
if (String.Compare(extname, ".mp4", true) == 0)
{
dirpath = @"\video";
}
else。。。。。。。。。。。。。。。。。。。
........................................................................
.......................................................................File.Delete(del_path);
/*
try
{
File.Delete(del_path);
}
catch { }
*/
}
} if (del_id != "")
{
SqlCommand com = new SqlCommand();
com.Connection = Conn;
com.CommandType = CommandType.StoredProcedure;
com.CommandText = "Files_Delete";
com.Parameters.Add("@s_id", SqlDbType.VarChar, 8000);
com.Parameters[].Value = del_id;
com.ExecuteNonQuery();
AddFiles("id");
}
就是把文件名生成字符串用符号隔开,传递到存储过程。
挺好用,修改一下,批量插入更新等批量操作都可以了。
这个学习练习用64位写的,改32位有问题了,在处理下。

初学c# -- 学习笔记(9) 关于SQL2008的更多相关文章
- 初学c# -- 学习笔记(一)
初学c# -- 学习笔记(一) 学习C#了,参考许多资料,一步步学习.这一段学习ajax的工作原理,参照其他例子写了web版的群聊小程序,全部文件代码也就不到300行,很简单.使用时先输入用户名,点确 ...
- 初学c# -- 学习笔记 小结
学了到了好些东西, 做了一些练习. 一.C# winform Socket 1.程序主要部分只是用了 Panel.Picturebox.Label.RicheditBox四个组件,滚动条.编辑框什么的 ...
- 初学c# -- 学习笔记(四)
想想,数据库先用mysql了,这玩意小且安装方便.前面web学了些,现在学winform的.数据库先看看便捷的mysql. 下载了一个mysql5.7版的,装上居然找不到密码,重装3.4回,找不到,说 ...
- 初学c# -- 学习笔记(二)
接着前面的学习,对话建立了,下面就写对话框气泡,和微信的差不多那种.尖角对话气泡网上一堆,圆尖角的修改了一个.IE8以下不能用,其他都可以用,直接上html代码,将<style>内容用到你 ...
- 【初学Java学习笔记】SQL语句调优
1, 对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2,应尽量避免在 where 子句中对字段进行 null 值判断,创建表时NULL是默认 ...
- 【初学Java学习笔记】AOP与OOP
AOP(Aspect Oriented Programming) 面向切面编程,是属于Spring框架中的内容.AOP相当于OOP的补充,当我们需要对多个对象引入一个公共行为,比如日志,操作记录等,就 ...
- 初学c# -- 学习笔记(八)
RichTextBox我服了,背景透明.宽度高度自适应.图片背景透明.gif动画等等都tm实现困难无比,搞来搞去,就最后一题做不出来了: RichTextBox不管什么背景,透明背景也好,图片背景也罢 ...
- 初学c# -- 学习笔记(七) RichTextBox支持GIF
园子里许明吉博客写的一篇,刚好用到这个,写的非常好.转过来了 不过在应用中也有一些问题,win10下不能中文输入,凑合着进行了修改, 下面是原来的代码: private void button2_Cl ...
- 初学c# -- 学习笔记(六) winfrom组件圆角
刚好用到这个功能,看了好些例子.我就不明白,简单的一个事,一些文章里的代码写的那个长啊,还让人看么. 精简后,就其实一点,只要有paint事件的组件,都可画圆角,没有的外面套一个panel就行了. u ...
随机推荐
- hive入门学习线路指导
hive被大多数企业使用,学习它,利于自己掌握企业所使用的技术,这里从安装使用到概念.原理及如何使用遇到的问题,来讲解hive,希望对大家有所帮助.此篇内容较多:看完之后需要达到的目标1.hive是什 ...
- nodejs----初期学习笔记
//一 回调函数 //require---命令//Node 使用了大量的回调函数,Node 所有 API 都支持回调函数.//例如,我们可以一边读取文件,一边执行其他命令,在文件读取完成后,我们将文件 ...
- js实现表单
<html> <head> <title>表单页面</title> <meta http-equiv="Content- ...
- Docker常用命令(四)
通过一些例子来了解基本的命令使用 1.查看docker信息 docker info 2.安装完Docker后,里面还有任何镜像,先从仓库下载一个基础镜像,然后在这个基础 ...
- 阅读 Device Driver Programmer Guide 笔记
阅读 Device Driver Programmer Guide 笔记 xilinx驱动命名规则 以X开头 源文件命名规则 以x打头 底层头文件与高级头文件 重点来了,关于指针的使用 其中 XDev ...
- mysqlbinlog基于时间点恢复
基于时间点恢复 /data/mysq/mysqlbin.000026 #mysqlbinlog文件,恢复如下内容: 注意:按照时间点恢复时,可能同一个时间点有其他的操作,要结合上下文的时间选取~ # ...
- 04-模拟String去除空格trim()方法
/** * 模拟String去除左右两边空格 * @param str */ public static String trim(String str) { char[] list = str.toC ...
- 10-安装es
1.安装jdk(jdk要求1.8.20或1.7.55以上) 2.上传es安装包 3.解压es tar -zxvf elasticsearch-2.3.1.tar.gz -C /opt/app/ 4.e ...
- TensorFlow模型加载与保存
我们经常遇到训练时间很长,使用起来就是Weight和Bias.那么如何将训练和测试分开操作呢? TF给出了模型的加载与保存操作,看了网上都是很简单的使用了一下,这里给出一个神经网络的小程序去测试. 本 ...
- 性能监控工具以及java堆分析OOM
一.性能监控工具 1.系统性能监控 Linux -确定系统运行的整体状态,基本定位问题所在 -uptime: ------系统时间 ------运行时间(例子中为127天) ------连接数(每 ...