sqlsugar 在插入二进制数据的时候 为何性能差这么多? 返回
SqlSugar
老数据
1
2892
悬赏:5 飞吻
数据库为sqlserver,字段类型为image。
insert 操作使用sqlsugar方式和ado.net的性能差了好多:

耗时单位为毫秒。
代码:
private void button1_Click(object sender, EventArgs e)
{
//创建一个对话框对象
OpenFileDialog ofd = new OpenFileDialog
{
//为对话框设置标题
Title = "请选择上传的图片",
//设置筛选的图片格式
Filter = "(*.jpg,*.png)|*.jpg;*.png",
//设置是否允许多选
Multiselect = false
};
//如果你点了“确定”按钮
if (ofd.ShowDialog() == DialogResult.OK)
{
//获得文件的完整路径(包括名字后后缀)
string filePath = ofd.FileName;
System.Drawing.Image Img = System.Drawing.Image.FromFile(filePath);
byte[] a = ImageToByte(Img);
t m = new t
{
img = a
};
DateTime dt1 = DateTime.Now;
Add(m);
lblSugar.Text = (DateTime.Now - dt1).TotalMilliseconds.ToString();
DbHelper dbHelper = new DbHelper();
SqlParameter[] parameters = {
new SqlParameter("@img", SqlDbType.Image)};
parameters[0].Value = a;
DateTime dt2 = DateTime.Now;
dbHelper.RunSql("insert into t(img) values(@img)", parameters);
lblAdo.Text = (DateTime.Now - dt2).TotalMilliseconds.ToString();
}
}
public class t
{
public byte[] img { get; set; }
}
//将image转换成byte[]数据
public static byte[] ImageToByte(System.Drawing.Image image)
{
MemoryStream ms = new MemoryStream();
image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
return ms.ToArray();
}
public int Add(t model)
{
return DbSugar.GetInstance().Insertable(model).ExecuteCommand();
}
DbHelper的Runsql:
/// <summary>
/// 执行Sql语句方法没有返回值
/// </summary>
/// <param name="sqlStr">传入的查询参数</param>
/// <param name="cmdParms"></param>
public void RunSql(string sqlStr, params SqlParameter[] cmdParms)
{
OpenDataBase();//打开数据库连接 代码就不贴了
_cmd = new SqlCommand(sqlStr, _con);
_cmd.Parameters.AddRange(cmdParms);
_cmd.ExecuteNonQuery();
CloseDataBase();//关闭数据库连接 代码就不贴了
}请教一下,这是我sqlsugar哪里使用不当,还是sqlsugar的处理byte[]数据的问题?
热忱回答(1)
-
fate stay night VIP0
2019/3/3我写的例子已发群里 ,性能OK
0 回复