检查在运行时创建的表的字段的数据验证 [英] Checking data validation for a field of a table created at Runtime

查看:48
本文介绍了检查在运行时创建的表的字段的数据验证的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

你好;

在一个程序中,我需要在运行时创建一个表并将其添加到(访问类型的)数据库中.该表具有一个数字类型的字段,称为年龄.为了验证此字段中写入的所有数据,我在以下代码中使用了check命令.我想知道为什么它会在运行时引发错误,说明字段定义中存在语法错误.你能帮我吗?

非常感谢您

Hello;

In a program I need to create and add a Table to a database (of Access type) at run time. The table has a field of Number type called Age. To validate all data written in this field, I used check command in the following code. I wonder why it raises an error at runtime saying that there is Syntax error in field definition. Could you please help me?

Thank you very much

using System.Data.OleDb;
...
 OleDbConnection myConnection = new OleDbConnection();
            myConnection.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source= "
                                           + @"E:\MyDataBase.accdb";
            OleDbCommand myCommand = new OleDbCommand();
            myCommand.Connection = myConnection;

            myCommand.CommandText = "CREATE TABLE Family" +
                                      " (" +
                                        " ID int IDENTITY(1,1) PRIMARY KEY," +
                                        " FName Char(10)," +
                                        " LName Char(10)," +
                                        " Age int NOT NULL CHECK (Age <= 100),"+
                                        " )";
            myConnection.Open();
            myCommand.ExecuteNonQuery();
            myConnection.Close();

推荐答案

在检查(Age< = 100)"之前加上,"
您仍然缺少一个逗号...

put the "," before "Check (Age <=100)"
you are still missing one comma......

using System.Data.OleDb;
...
 OleDbConnection myConnection = new OleDbConnection();
            myConnection.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source= "
                                           + @"E:\MyDataBase.accdb";
            OleDbCommand myCommand = new OleDbCommand();
            myCommand.Connection = myConnection;

            myCommand.CommandText = "CREATE TABLE Family" +
                                      " (" +
                                        " ID int IDENTITY(1,1) PRIMARY KEY," +
                                        " FName Char(10)," +
                                        " LName Char(10)," +
                                        " Age int NOT NULL," + 
                                        " CHECK (Age <= 100)"+
                                        " )";
            myConnection.Open();
            myCommand.ExecuteNonQuery();
            myConnection.Close();



并尝试阅读这篇文章........

http://office.microsoft.com/zh-cn/access-help/access-projects-and-data-access-pages-now-use-ansi-sql-92-syntax-HA001034562.aspx



and try to read this article........

http://office.microsoft.com/en-us/access-help/access-projects-and-data-access-pages-now-use-ansi-sql-92-syntax-HA001034562.aspx


亲爱的朋友;

我在年龄段输入了错误的,".我删除了它,但是尽管存在问题.

Dear Friends;

I misstyped '','' at age line. I deleted it but although the problem exists.

" Age int NOT NULL CHECK (Age <= 100),"



已更正为

"Age int NOT NULL CHECK(年龄< = 100)



is corrected to

" Age int NOT NULL CHECK (Age <= 100)


"

但问题存在.

"

but the problem exists.


这篇关于检查在运行时创建的表的字段的数据验证的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆