什么名称空间用于删除以下错误?

时间:2011-03-24 04:34:36

标签: c# asp.net

我的问题是,如果用户点击按钮(例如,放在default.aspx中),那么数据库表是在数据库中创建的(数据库放在sql express 2005中)怎么办?。

我通过其他方法尝试此任务,但发生了以下错误:

  

1.'system.Web.UI.Page.Server'是'property',但用作'type'。

     

2.无法找到类型或命名空间名称“数据库”(是吗?   缺少使用指令或   装配参考?)

     

3.当前上下文中不存在名称“DataType”。

     

4.'System.Web.UI.WebControls.Table'不包含的定义   '列'并没有扩展方法   '列'接受第一个参数   类型       可以找到'System.Web.UI.WebControls.Table'(你是否错过了使用   指令或汇编参考。

     

5.'System.Data.Index'由于其保护而无法访问   水平。

      6.'System.Data.Index'不包含带'2'的构造函数   参数。

     

7.'System.Data.Index'不包含的定义   'IndexKeyType'并没有扩展方法   'IndexKeyType'接受第一个   'System.Data.Index'类型的参数   可以找到(你错过了使用   指令或程序集引用?)

     

8.当前上下文中不存在名称“IndexKeyType”。

     

9.'System.Data.Index'不包含定义   for'IndexedColumns',没有扩展名   方法'IndexedColumns'接受a   类型的第一个参数   可以找到'System.Data.Index'(是   你错过了使用指令或   装配参考?)

     

10.找不到类型或命名空间名称“Indexedcolumn”(是   你错过了使用指令或   装配参考?)

     

11.'System.Web.UI.WebControls.Table'不包含的定义   '索引',没有扩展方法   '索引'接受第一个参数   类型   'System.Web.UI.Webcontrols.Table'   可以找到(你错过了使用   指令或程序集引用?)

     

13.'System.Web.UI.WebControls.Table'不包含的定义   '创建',没有扩展方法   '创造'接受第一个参数   输入'Systen.Web.UI.WebControls.Table'   可以找到(你错过了使用   指令或程序集引用?)

按钮后面用c#编写的代码是:

using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Collections.Generic;
//using System.Data.OleDb;
using System.Diagnostics;
using System.ComponentModel;
using System.Text;
using System.Data.SqlClient;
//using System.Data.Odbc;
using Microsoft.SqlServer.Management.Common;
//using ADOX;
//using ADODB;
public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        // Establish the database server 
        string connectionString = ConfigurationManager.ConnectionStrings["gameConnectionString"].ConnectionString;
        SqlConnection connection =
             new SqlConnection(connectionString);
        Server server =
             new Server(new ServerConnection(connection));
        // Create table in my personal database 
        Database db = server.Databases["game"];
        // Create new table, called TestTable 
        Table newTable = new Table(db, "TestTable");
        // Add "ID" Column, which will be PK 
        Column idColumn = new Column(newTable, "ID");
        idColumn.DataType = DataType.Int;
        idColumn.Nullable = false;
        idColumn.Identity = true;
        idColumn.IdentitySeed = 1;
        idColumn.IdentityIncrement = 1;
        // Add "Title" Column 
        Column titleColumn = new Column(newTable, "Title");
        titleColumn.DataType = DataType.VarChar(50);
        titleColumn.Nullable = false;
        // Add Columns to Table Object 
        newTable.Columns.Add(idColumn);
        newTable.Columns.Add(titleColumn);
        // Create a PK Index for the table 
        Index index = new Index(newTable, "PK_TestTable");
        index.IndexKeyType = IndexKeyType.DriPrimaryKey;
        // The PK index will consist of 1 column, "ID" 
        index.IndexedColumns.Add(new IndexedColumn(index, "ID"));
        // Add the new index to the table. 
        newTable.Indexes.Add(index);
        // Physically create the table in the database 
        newTable.Create();
    }
}

先生,请解决这些错误,并提供详细的解决方案,我可以很容易地理解。我很困惑,请帮助我。谢谢先生

1 个答案:

答案 0 :(得分:1)

建议放弃目前的做法。问题超出了命名空间。建议采取以下步骤:

  • 为以下
  • 创建一个全新的测试项目
  • 确定SQL语句
    • 创建包含所有列的表
    • 创建索引
  • 使用ADO.NET执行上面的SQL语句。建议SqlConnectionSqlCommand

这样的事情:

using (var conn = new SqlConnection(connString))
{
    using (var cmd = conn.CreateCommand())
    {
        cmd.CommandText = createTableStatement; //CREATE TABLE Foo (ID int);
        conn.Open();
        cmd.ExecuteNonQuery();
        cmd.CommandText = createIndexStatement;
        cmd.ExecuteNonQuery();
    }
}

这将帮助您开始完成任务。确保用户输入的任何数据不会简单地放入字符串中以创建对象。如果是这样,请更改使用SqlCommand参数的方法。

这是关于Beginner's Guide to Accessing SQL Server Through C#

的文章