C#开发中发生“服务器无法生成类型为“Char(20)”的主键列。”
来源:互联网 发布:外部js文件怎么写 编辑:程序博客网 时间:2024/05/16 03:52
我使用的是VStudio.net 2008 写C#程序,现在项目的sql2005数据库服务器上有一个表 t_users,其中 userid char(20) not null 为
主键,现在在c#中通过linq to sql 向数据库插入一条记录,如下:
/*系统用户信息表_Users*/
create table T_Users (
UserID char(20) not null,
UserName char(40) not null,
UserPWD char(32) null,
UserState int default 1 not null,/*0:禁止,1:正常*/
CreateTime datetime default getdate() not null,
constraint PK_T_USERS primary key nonclustered (UserID)
)
go
执行的代码如下:
T_Users uu;
uu=new T_Users()
{
UserID=textBox1.Text.Trim(),//="liu"
UserName = textBox2.Text, //="test"
UserPWD = textBox4.Text,//="123456"
UserState=1 ,
CreateTime=System.DateTime.Today};
pmdc.T_Users.InsertOnSubmit(uu);
pmdc.SubmitChanges();
(其中pmdc为DataContext对象)
执行到 pmdc.SubmitChanges()会弹出如下错误:
Message="服务器无法生成类型为“Char(20)”的主键列。 "
Source="System.Data.Linq"
StackTrace:
在 System.Data.Linq.SqlClient.QueryConverter.GetIdentityExpression(MetaDataMember id, Boolean isOutputFromInsert)
在 System.Data.Linq.SqlClient.QueryConverter.VisitInsert(Expression item, LambdaExpression resultSelector)
在 System.Data.Linq.SqlClient.QueryConverter.VisitDataManipulationCall(MethodCallExpression mc)
在 System.Data.Linq.SqlClient.QueryConverter.VisitInner(Expression node)
在 System.Data.Linq.SqlClient.QueryConverter.ConvertOuter(Expression node)
在 System.Data.Linq.SqlClient.SqlProvider.BuildQuery(Expression query, SqlNodeAnnotations annotations)
在 System.Data.Linq.SqlClient.SqlProvider.System.Data.Linq.Provider.IProvider.Execute(Expression query)
在 System.Data.Linq.ChangeDirector.StandardChangeDirector.DynamicInsert(TrackedObject item)
在 System.Data.Linq.ChangeDirector.StandardChangeDirector.Insert(TrackedObject item)
在 System.Data.Linq.ChangeProcessor.SubmitChanges(ConflictMode failureMode)
在 System.Data.Linq.DataContext.SubmitChanges(ConflictMode failureMode)
在 Zetasoft.Permission.ZetaPermissionController.Insert_Users(T_Users user) 位置 D:/dotnetWork/Zeta.敏捷软件工厂/Zetasoft/Zetasoft/ZetaPermissionController.cs:行号 160
在 test.Form1.button2_Click(Object sender, EventArgs e) 位置 D:/dotnetWork/Zeta.敏捷软件工厂/Zetasoft/test/Form1.cs:行号 76
在 System.Windows.Forms.Control.OnClick(EventArgs e)
在 System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
在 System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
在 System.Windows.Forms.Control.WndProc(Message& m)
在 System.Windows.Forms.ButtonBase.WndProc(Message& m)
在 System.Windows.Forms.Button.WndProc(Message& m)
在 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
在 System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
在 System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
在 System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
在 System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
在 System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
在 test.Program.Main() 位置 D:/dotnetWork/Zeta.敏捷软件工厂/Zetasoft/test/Program.cs:行号 18
在 System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
在 Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
在 System.Threading.ThreadHelper.ThreadStart()
InnerException:
- C#开发中发生“服务器无法生成类型为“Char(20)”的主键列。”
- 无法在为空的列上定义主键约束
- SQL Server中类型转换(将varchar值转换为数据类型为int的列时发生语法错误)
- C# 判断某列是否为主键
- 无法生成模型:“表“TableDetails”中列“IsPrimaryKey”的值为DBNull
- 无法生成模型:“表“TableDetails”中列“IsPrimaryKey”的值为DBNull
- 获取数据库所有列以及列的类型是否为空是否为默认值是否为主键
- C#中char类型与string类型的相互转换
- “无法将类型"string"转换为"char"”?
- VS2008中 string 类型转化成char* 时出现 “初始化”: 无法从“const char *”转换为“char *”
- 【学习日记】C#数据库中主键类型的选择
- 类型“System.String”的对象无法转换为类型“System.Char”。
- 由于出现以下异常,无法生成模型:“System.Data.StrongTypingException: 表“TableDetails”中列“IsPrimaryKey”的值为 DBNull
- C#和C++中char类型的区别
- C#和C++中char类型的区别
- C#和C++中char类型的区别
- C#调用Java端Web服务(CXF)时发生Integer参数类型无法传递的问题
- ibatis无法生成主键的原因
- JQuery常用方法一览
- Slackware下自动挂载Windows系统上的盘符的方法
- 2个日期间隔算法,每隔多少个月后的第几天
- 出现错误-未找到要在其中创建新文件系统的有效设备。请检查您的硬件以找到问题的起因。
- POJ 1520 C++
- C#开发中发生“服务器无法生成类型为“Char(20)”的主键列。”
- List Control控件技巧总汇【二】
- 在QListWidget的item上实现右键菜单
- 在Oracle存储过程中需要遍历一张表《转》
- 随记
- export sql select date to Excel
- Visual Studio IDE 快捷键一览
- 高性能SQLServer通用分页存储过程
- aaaaaaaaa