Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 链接表显示为只读_C#_.net_Ms Access_Dao - Fatal编程技术网

C# 链接表显示为只读

C# 链接表显示为只读,c#,.net,ms-access,dao,C#,.net,Ms Access,Dao,我正在使用C创建一个SQL Server视图,然后打开一个access数据库并将表链接到access中。CREATEVIEW语句、open database语句和link语句工作得很好,但这里的问题是它总是以只读方式链接表。我需要添加或更新当前视图的哪一段o代码,以便视图不总是以只读方式链接 string MasterDatabase = "R:\\Testing\\MasterDatabase.mdb"; DAO.Database dd; DAO.DBEngine db = new DAO.D

我正在使用C创建一个SQL Server视图,然后打开一个access数据库并将表链接到access中。CREATEVIEW语句、open database语句和link语句工作得很好,但这里的问题是它总是以只读方式链接表。我需要添加或更新当前视图的哪一段o代码,以便视图不总是以只读方式链接

string MasterDatabase = "R:\\Testing\\MasterDatabase.mdb";
DAO.Database dd;
DAO.DBEngine db = new DAO.DBEngine();
DAO.TableDef tdf9;
bool found = false;
DAO.TableDef tdf1;
string Table = "ServiceEntranceLog";
string TableAccess = "Service_Entrance_Log";

using (var connection = new SqlConnection(ConnectionStringHere))
using (var command = connection.CreateCommand())
{   
            using (var command4 = connection.CreateCommand())
            {
                            command4.CommandText = "CREATE VIEW HelperView" AS SELECT * FROM monster.ServiceEntranceLog";
                            command4.ExecuteNonQuery();
            }
}
if (_combobox1.SelectedItems.Contains("MasterDatabase"))
{
            dd = db.OpenDatabase(CRDB);
            try
            {
                            string[] tableNames = new string[1] { TableAccess };
                            for (int q = tableNames.GetLowerBound(0); q <= tableNames.GetUpperBound(0); q++)
                            {
                                            foreach (DAO.TableDef tabledef in dd.TableDefs)
                                            {
                                                            string name = tableNames[q];
                                                            if (tabledef.Name == name) { found = true; }
                                                            try { if (found) { dd.TableDefs.Delete(name); } }
                                                            catch { }
                                            }
                            }
            }
            catch { }
            tdf1 = dd.CreateTableDef(TableAccess);
            tdf1.Connect = connectionString;
            tdf1.SourceTableName = Table;
            dd.TableDefs.Append(tdf1);
}

Alrity,所以问题似乎是我需要在表中链接到access时定义主键,以便表可以更新。使用这种语法就可以做到这一点

dd.Execute "CREATE UNIQUE INDEX SomeIndex ON SomeTable (PrimaryKeyColumn) WITH PRIMARY"