在Sql2005中,向表中插入数据时遇到uniqueidentifier列,如何插入数据?

原文 http://blog.csdn.net/quou2002/article/details/596509

Sql2005中,提供了uniqueidentifier 数据类型。说白了,就是个GUID,这种类型开发时倒是很有必要的。

今天程序中遇到了这个问题:表里定义了一个uniqueidentifier 列,Asp.net程序需要向表中插入新的数据。 Insert 语句由数据源控件自动生成:INSERT INTO [morning_Department] ([DepartmentId], [name]) VALUES (@DepartmentId, @name),其中DepartmentId列为一个uniqueidentifier 列。

错误提示:
Implicit conversion from data type sql_variant to uniqueidentifier is not allowed. Use the CONVERT function to run this query.

解决方法有2种:
1、在数据库中将Insert 操作写成存储过程,uniqueidentifier 列由SQL2005提供的NEWID()函数生成,Asp.net程序这边就不用负责生成这个值了;

2、还是按常规思路,只是在数据源控件InsertQuery属性中稍作修改即可。
①点击InsertQuery属性,打开‘命令和参数编辑器’;
②就上面写的那个Insert 语句来说,在‘参数’列表里选择‘DepartmentId’这个uniqueidentifier 列名称;
③右边有个‘显示高级属性’,点击它。滚动条拖到最下,有个‘Type’属性,默认值是‘Object ’类型,把它改为‘string’。
④Ok,收工。

时间: 2024-10-03 09:46:03

在Sql2005中,向表中插入数据时遇到uniqueidentifier列,如何插入数据?的相关文章

jsp-java 中JSP 实现把excel表中数据导入到mysql数据库中的表中的具体实现方法

问题描述 java 中JSP 实现把excel表中数据导入到mysql数据库中的表中的具体实现方法 java 中JSP 实现把excel表中数据导入到mysql数据库中的表中的具体实现方法 解决方案 参考:http://blog.csdn.net/casilin/article/details/5750773 解决方案二: 楼主幸苦了!!谢谢分享!!! 解决方案三: jsp导excel到mysql数据库 http://wenku.it168.com/d_000468232.shtml

mysql保存一条有id的数据到表中,表中id可以不变吗

问题描述 mysql保存一条有id的数据到表中,表中id可以不变吗 mysql保存一条有id的数据到表中,表中新增的数据id可以不变吗?所有字段不都变,可以不 解决方案 如果列上面被设置成了主键或加上了唯一性约束,那么这一列上的数据在每一行中都要不一样. 如果你说的id列有被设置成主键或者唯一性约束的话,就不能不变. 没有主键和唯一性约束的话,可以有完全相同的两条或多条的一样的数据. 但为了区分每一行数据,在数据库设计上面会将设置一列做为主键. 解决方案二: 如果id不是唯一主键,就可以一样 解

asp.net 如何读取客户端电脑中SQLITE表中的数据

问题描述 如题:如何读取客户端电脑中SQLITE表中的数据 解决方案 解决方案二:做不到吧,你数据库的账号密码都不知道首先解决方案三:我本地机器SQLITE是统一开发的单机程序解决方案四:首先要知道你要取得数据的ip地址,数据库名称,用户名,密码,然后建立数据连接,就可以得到数据了.解决方案五:这个用VB程序写在excel里比较好解决方案六:sqlite,一般都是作为单机版的数据库使用网络环境使用,建议改用其他数据,比如mssql.oracle.mysql等等

codefrist-Entity Framework使用Code First 插入数据时,多出来额外的数据

问题描述 Entity Framework使用Code First 插入数据时,多出来额外的数据 在项目总使用Code First遇到坑爹的问题了 例如我有如下类: public class Catalog { public Int32 ID { get; set; } public String CatalogName { get; set; } public Catalog() { } public Catalog(Int32 ID, String Name) { this.ID = ID;

sqlserver中向表中插入多行数据的insert语句_MsSql

下面把在sql吧里一位高手的解决方法,公布下.供大家参考: 假设有个表有 学号.姓名.学校 这三列 然后向这个表中插入 040501 孙明 山东大学 040502 李浩 山东师范 040503 王刚 烟台大学 怎么插入这三行数据啊~~~~~~~ 复制代码 代码如下: insert 表名 select '040504','孙明','山东大学' union select '040502','李浩','山东师范' union select '040503','王刚','烟台大学'

sqlserver中向表中插入多行数据的insert语句

下面把在sql吧里一位高手的解决方法,公布下. 供大家参考: 假设有个表有 学号.姓名.学校 这三列 然后向这个表中插入 040501 孙明 山东大学 040502 李浩 山东师范 040503 王刚 烟台大学 怎么插入这三行数据啊~~~~~~~ 复制代码 代码如下: insert 表名 select '040504','孙明','山东大学' union select '040502','李浩','山东师范' union select '040503','王刚','烟台大学'

如何将数据写入到数据库中的表中(c#连接sql数据库)

问题描述 我们使用c#连接数据库时,例如插入一条记录时,数据会被写调入数据缓冲区中,但并没有从数据缓冲区中写入到数据库的表中.当打开数据库中的表时,插入的数据并没显示在数据库的表中.如何才能真正把数据插入表中.希望大家多多指点. 解决方案 解决方案二:参考下SqlConnectionconn=newSqlConnection("DataSource=.;InitialCatalog=trace;IntegratedSecurity=True");conn.Open();SqlDataA

MySQL中从表中取出随机数据性能优化

最简的办法 rand() 函数实例  代码如下 复制代码 SELECT * FROM table_name ORDER BY rand() LIMIT 5; 花时间为 0.7888 如果这样在数据量大时就挂了 后来找到一个办法  代码如下 复制代码 SELECT * FROM table_name AS r1 JOIN (SELECT ROUND(RAND() * (SELECT MAX(id) FROM table_name)) AS id) AS r2 WHERE r1.id >= r2.i

Sql语句:显示Sql Server中所有表中的信息

显示某个Sql Server某个数据库中所有表或视图的信息 sql server 2000 与 2005 不同 差别在于 红色字部分以下语句为获取所有表信息,替换绿色黑体字"U"为"V"为获取所有视图信息. Sql Server 2000 版本 SELECT Sysobjects.name AS TABLE_NAME, syscolumns.Id, syscolumns.name AS COLUMN_NAME,systypes.name AS DATA_TYPE,