作者QQ29 (我爱阿蓉)
看板C_Sharp
标题Re: [问题] DataBase 栏位有字串长度限制该怎麽解!
时间Tue May 3 23:41:30 2011
我的Table长这样....
[Table(Name = "DVDTable")]
public class DVD
{
public DVD() { }
public DVD(string szTitle, string szRating)
{
Title = szTitle;
Rating = szRating;
}
[Column(IsPrimaryKey = true, IsDbGenerated = true)]
public int PrimKey;
[Column(DbType = "nvarchar(max)")]
public string Title;
[Column]
public string Rating;
//[Column(DbType = "varbinary(8000)")]
public byte[] Data;
}
我不解的是.....nvarchar(这边只要填 1~4000)都OK
但我现在必须是要超过4000....
而我只要这样写 他马上在CreateDataBase出错
There was an error parsing the query. [ Token line number = 3,Token line
offset = 20,Token in error = max ]
看起来是 他认不得max....可是我google很久 很多人都是这样写
只差在他们大小写不一样 但我照做也是坏...
我是VS2010.....难道是他API没写好吗.....
※ 引述《QQ29 (我爱阿蓉)》之铭言:
: ※ [本文转录自 Programming 看板 #1DlN1yaf ]
: 作者: QQ29 (我爱阿蓉) 站内: Programming
: 标题: [问题] DataBase 栏位有字串长度限制该怎麽解!
: 时间: Sun May 1 22:38:49 2011
: 不好意思想请教各位
: 遇到一个DataBase的设计问题 我是没有任何database相关知识背景
: survey後
: 我 是使用 DataContext这个Class
: http://msdn.microsoft.com/zh-tw/library/system.data.linq.datacontext.aspx
: 我的某一个Table存的资料是
: struct MyData{ string Key; string Content;}
: 我以为很简单 但我发现他有一个大问题就是
: 我insert的字串要是超过4000 length 他就爆出
: string truncation exception.........
: 我无法限制插入字串的长度, 那是使用者输入的.....
: 而我也不晓得该怎麽办~
: 我的疑惑点有两个
: 1. DB为啥要有字串长度的限制@@ 是怕太长 一笔资料太大吗??
: 2. 若一般人遇到我这种case要怎麽样 处理呢?
: 我自己想法是.....
: (1)我就多宣告几个Content....例如
: struct MyData{string Key; string Content1, Content2, Content3....}
: 然後要insert资料时把字串以四千 切割照顺序 存到1 2 3
: 然後query时 在写很无脑的 string Content = 1 + 2 + 3;
: 这根本就......还是有机会爆炸 但我实在想不到方法 因为他栏位无法动态增加..
: (2) 我一笔资料插入 就把Content 存到 Key.txt... 然後MyData改成纪录 档案名称
: 或是我因为用Key当档名 就根本不用纪录档名了....
: 但缺点是 我每次query一笔资料就要 file 开关 一次 多笔就是多次
: 我认为这缺点很严重....毕竟IO很慢 且频繁.....
: 我实在不知道该怎麽办= = 主要是我对DB不熟 只是单纯survey这些API
: 可是不应该只有我会遇到这问题~~不知道大家是如何解决的~ 请各位给点意见
: 谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 123.192.70.221
1F:→ b9433056:使用的资料库是?? 05/04 09:11
2F:→ deuter:nvarchar只能写1-4000或max, 不过Sql CE不支援max 05/04 11:46
3F:推 horngsh:何不用nvarchar(max) 05/04 14:09
4F:→ QQ29:我就是用nvarchar max@@可是不给用~我不太清楚我是用啥DB耶 05/05 00:48
5F:→ QQ29:手机上的....是sql ce?那如果不支援该怎办 05/05 00:49
6F:→ QQ29:我查网路 ntext建议改用nvarchar....但不给用max 真怪 05/05 00:49