using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text; namespace Common
{
public class ConvertData
{
/// <summary>
/// 构造函数
/// </summary>
public ConvertData()
{ } /// <summary>
/// 将byte[]数组转换为double[]数组
/// </summary>
/// <param name="b"></param>
/// <returns></returns>
public double[] BytesToDoubles(byte[] b)
{
// Initialize unmanged memory to hold the array.
int size = Marshal.SizeOf(b[0]) * b.Length; IntPtr pnt = Marshal.AllocHGlobal(size); try
{
// Copy the array to unmanaged memory.
Marshal.Copy(b, 0, pnt, b.Length); // Copy the unmanaged array back to another managed array.
double[] managedArray2 = new double[b.Length / 8]; Marshal.Copy(pnt, managedArray2, 0, b.Length / 8);
return managedArray2;
}
finally
{
// Free the unmanaged memory.
Marshal.FreeHGlobal(pnt);
} } /// <summary>
/// 获取内存中double[],并转换为String字符串
/// </summary>
/// <param name="b"></param>
/// <returns></returns>
public string DoublesToString(double[] doubleArray)
{
string values = ""; for (int i = 0; i < doubleArray.Length; i++)
{
values += doubleArray[i] + ",";
} return values;
} /// <summary>
/// 获取内存中double[],并转换为String字符串
/// </summary>
/// <param name="b"></param>
/// <returns></returns>
public string BytesToString(byte[] b)
{
double[] doubleArray = BytesToDoubles(b); return DoublesToString(doubleArray); } /// <summary>
/// 获取内存中double[],并转换为String字符串
/// </summary>
/// <param name="b"></param>
/// <returns></returns>
public string GetByteToDouble(byte[] b)
{
// Initialize unmanged memory to hold the array.
int size = Marshal.SizeOf(b[0]) * b.Length; IntPtr pnt = Marshal.AllocHGlobal(size);
string values = "";
try
{
// Copy the array to unmanaged memory.
Marshal.Copy(b, 0, pnt, b.Length); // Copy the unmanaged array back to another managed array.
double[] managedArray2 = new double[b.Length / 8]; Marshal.Copy(pnt, managedArray2, 0, b.Length / 8); for (int i = 0; i < managedArray2.Length; i++)
{
values += managedArray2[i] + ",";
}
}
finally
{
// Free the unmanaged memory.
Marshal.FreeHGlobal(pnt);
} return values;
} /// <summary>
/// 将double[]数组转换为byte[]数组
/// </summary>
/// <param name="d"></param>
/// <returns></returns>
public byte[] DoublesToBytes(double[] d)
{
int size = Marshal.SizeOf(d[0]) * d.Length;
IntPtr pnt = Marshal.AllocHGlobal(size);
try
{
// Copy the array to unmanaged memory.
Marshal.Copy(d, 0, pnt, d.Length); // Copy the unmanaged array back to another managed array.
byte[] managedArray2 = new byte[d.Length * 8]; Marshal.Copy(pnt, managedArray2, 0, d.Length * 8);
return managedArray2;
}
finally
{
// Free the unmanaged memory.
Marshal.FreeHGlobal(pnt);
}
} }
}

调用:

 public int InsertWSWSUH(string wscd, int uintv, int udrp, string unitnm, int usteps, double[] uhdata, double mfp,/*datetime,*/int nsteps) //// <param name="datetime">时间戳</param>
{ string sqlStr = "Insert into [HyModelDB_new].[dbo].[FFM_WSWSUH_B] ([WSCD],[UINTV],[UDRP],[UNITNM] ,[USTEPS] ,[UHDATA],[MFP],[DATETM],[NSTEPS]) values ('" + wscd + "'," + uintv + "," + udrp + ",'" + unitnm + "'," + usteps + "," + "@unitData" + "," + mfp + "," + "@dateTime" + "," + nsteps + ")"; SqlParameter[] parameters = {
new SqlParameter("@unitData", SqlDbType.Image),
new SqlParameter("@dateTime", SqlDbType.DateTime)}; parameters[0].Value = ConvertData.DoublesToBytes(uhdata);
parameters[1].Value = DateTime.Now.ToString("yyyy-MM-dd");
return db.ExecuteSql(sqlStr);
}

参考代码:

/// <summary>
/// 增加一条数据
/// </summary>
public int Add(OA.Model.InformationOfDoc model)
{
StringBuilder strSql=new StringBuilder();
strSql.Append("insert into InformationOfDoc(");
strSql.Append("DocName,DocType,RwID,RWType,RWClass,Execution,DocBLOB,DocAttribute,CreateYMD,Remark)");
strSql.Append(" values (");
strSql.Append("@DocName,@DocType,@RwID,@RWType,@RWClass,@Execution,@DocBLOB,@DocAttribute,@CreateYMD,@Remark)");
strSql.Append(";select @@IDENTITY");
SqlParameter[] parameters = {
new SqlParameter("@DocName", SqlDbType.VarChar,40),
new SqlParameter("@DocType", SqlDbType.VarChar,100),
new SqlParameter("@RwID", SqlDbType.VarChar,18),
new SqlParameter("@RWType", SqlDbType.Char,10),
new SqlParameter("@RWClass", SqlDbType.Char,4),
new SqlParameter("@Execution", SqlDbType.Char,6),
new SqlParameter("@DocBLOB", SqlDbType.Image),
new SqlParameter("@DocAttribute", SqlDbType.Char,6),
new SqlParameter("@CreateYMD", SqlDbType.Date,3),
new SqlParameter("@Remark", SqlDbType.VarChar,200)};
parameters[0].Value = model.DocName;
parameters[1].Value = model.DocType;
parameters[2].Value = model.RwID;
parameters[3].Value = model.RWType;
parameters[4].Value = model.RWClass;
parameters[5].Value = model.Execution;
parameters[6].Value = model.DocBLOB;
parameters[7].Value = model.DocAttribute;
parameters[8].Value = model.CreateYMD;
parameters[9].Value = model.Remark; object obj = DbHelperSQL.GetSingle(strSql.ToString(),parameters);
if (obj == null)
{
return 0;
}
else
{
return Convert.ToInt32(obj);
}
}

C#:向SqlServer数据库中插入imange类型的更多相关文章

  1. 读写SQLServer数据库中的image类型数据(简单)

    1.将double类型的数据存储于image类型的变量中: (1). char *CManualForecastResultBll::DoubleArray2Binary(std::vector< ...

  2. 向数据库中插入一个DateTime类型的数据到一个Date类型的字段中,需要转换类型。TO_DATE('{0}','YYYY-MM-DD'))

    需要指出的是,C#中有datetime类型,但是这个类型是包括小时,分钟,秒的.这个格式与数据库中的Date类型不符,如果将now设为datetime类型插入数据会失败. 需要通过TO_DATE('字 ...

  3. Sqlserver数据库中的临时表详解

    临时表在Sqlserver数据库中,是非常重要的,下面就详细介绍SQL数据库中临时表的特点及其使用,仅供参考. 临时表与永久表相似,但临时表存储在tempdb中,当不再使用时会自动删除.临时表有两种类 ...

  4. 批量解密SQLSERVER数据库中的各种对象的工具dbForge SQL Decryptor

    批量解密SQLSERVER数据库中的各种对象的工具dbForge SQL Decryptor2.1.11 之前写过一篇文章,使用redgate公司的SQL PROMPT工具,但是不太方便 SQLPRO ...

  5. 向mysql中插入Date类型的数据

    先看数据库表的定义 date字段为sql.date类型.我要向其中插入指定的日期和当前日期. 一.插入当前日期 思路:先获取当前系统,在将当前系统时间转换成sql类型的时间,然后插入数据库.代码如下 ...

  6. java.sql.date与java.util.date区别以及数据库中插入带时分秒的时间

    java.sql.Date,java.sql.Time和java.sql.Timestamp三个都是java.util.Date的子类(包装类). java.sql.Date是java.util.Da ...

  7. Oracle数据库中插入日期型数据(to_date的用法)(转载)

    往Oracle数据库中插入日期型数据(to_date的用法) INSERT  INTO  FLOOR  VALUES  ( to_date ( '2007-12-20 18:31:34' , 'YYY ...

  8. 通过mybatis向数据库中插入日期数据

    遇到的问题: 通过mybatis向数据库中插入日期格式数据,发现只有年月日, 没有小时分钟和秒 当你想在实体类中使用java.util.Date类型,而且还想在数据库中保存时分秒时, 解决办法: 你可 ...

  9. SQL语句往Oracle数据库中插入日期型数据(to_date的用法)

    Oracle 在操作数据库上相比于其他的 T-sql 有微小的差别,但是在插入时间类型的数据是必须要注意他的 to_date 方法,具体的情况如下: --SQL语句往Oracle数据库中插入日期型数据 ...

随机推荐

  1. RTL8188EUS带天线的WiFi模块

    http://www.liuliutech.com/ProductShow.asp?ID=121 一,公司介绍瑞昱(REALTEK)半导体成立于1987年,位于台湾[硅谷]的新竹科学园区.凭借着7位创 ...

  2. DC-DC converter Control techniques

    As shown in figure 3.4, PWM controller contains two main parts; voltage error-amplifier and voltage ...

  3. sysbench 测试MYSQL

    http://imysql.cn/tag/%E5%8E%8B%E6%B5%8B http://imysql.cn/node/312 https://www.percona.com/blog/2013/ ...

  4. Appium+python自动化16-appium1.6在mac上环境搭建启动ios模拟器上Safari浏览器

    前言 在mac上搭建appium踩了不少坑,先是版本低了,启动后无限重启模拟器.后来全部升级最新版本,就稳稳的了. 环境准备: 1.OS版本号10.12 2.xcode版本号8.3.2 3.appiu ...

  5. s:iterator数据累加示例代码

    <s:set var="xs_heji" value="0" /> <s:set var="km_heji" value= ...

  6. 获取easyui calendar 属性

    <div id="cc" class="easyui-calendar" style="width:250px;height:250px;&qu ...

  7. 数学图形(2.9) Capareda曲线

    还是绕在球上的线圈 #http://www.mathcurve.com/courbes3d/capareda/capareda.shtml vertices = t = to (*PI) q = ra ...

  8. django from组件 实现增加 删除 编辑(推荐用法)

    实现效果: 代码示例: 代码: models.py from django.db import models class UserInfo(models.Model): username = mode ...

  9. 项目笔记:list页面展示与交互设计

    1.前台页面: 因为要展示正版和非正版,所以传个Type值过去: //正版序列号库列表 var type = $("input[name='serialNumber']:checked&qu ...

  10. Android -- Service绑定解绑和aidl

    Service是安卓四大组件之一,先前讲到了Service的生命周期,以及非绑定类型的生命周期的例子,这次来分享一下绑定形式的. 应用组件(客户端)可以调用bindService()绑定到一个serv ...