通过C#ODBC连接添加到Access DB [英] Adding to Access DB Though a C# ODBC Connection

查看:151
本文介绍了通过C#ODBC连接添加到Access DB的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我目前正在学习如何通过C#visual管理Access数据库,但是出现了一些错误,在我尝试添加的139个条目中,有19个条目(每次都是相同的)被不断阻止。条目存储在它们自己的类(称为
Item)实例中,我有一个方法,通过自动创建SQL Insert命令将它们转换为行,将命令存储在列表中,然后执行命令列表稍后循环

I am currently learning how to manage an Access Database through C# visual, but some Errors appear, of the 139 entries that I try to add, 19 entries (Same ones every time) are constantly blocked. the entries are stored in their own class (called Item) instance, I have a method that translates them into rows by auto creating the SQL Insert command, storing the command in a list and then executing the list of commands within a loop later

DB Cols - ID,KnownName,NameEng,NameJap,Studio,Status,FinStatus,Cover,Type,StartDate,WatchedEpisodes,SkippedWeeks,TotalEpisodes,Rating,Tags,Hype

DB Cols - ID, KnownName, NameEng, NameJap, Studio, Status, FinStatus, Cover, Type, StartDate, WatchedEpisodes, SkippedWeeks, TotalEpisodes, Rating, Tags, Hype

  public static void AddEntry(Item r)

{

R.SetID(); //根据项目中可用的实例变量创建随机ID



字符串SQLCMD ="INSERT INTO AniChart VALUES(" ;;

SQLCMD + = r.SQLColStr(); //用单引号(' ')绑定每个实例变量并根据行对它们进行排序

SQLCMD + =")" ;;



AddCommands.Add(SQLCMD);

}

 public static void AddEntry(Item r)
{
R.SetID(); //Creates a Random ID based on the available instance variables in the Item

string SQLCMD = "INSERT INTO AniChart VALUES(";
SQLCMD += r.SQLColStr();// Binds each instance variable in single quotes ( '  ' ) and orders them according to row
SQLCMD += ")";

AddCommands.Add(SQLCMD);
}

public static void Save()

{

foreach(Lists.UpdateList.Keys中的字符串a)UpdateEntry(a,Lists.UpdateList [a]);

foreach(string a in Lists.DeleteList)DeleteEntry(a);
$
foreach(Lists.AddList中的项目a)AddEntry(a);
$
AniListCon.Open(); //连接



foreach(DelCommands中的字符串SQLCMD)

{

    if(AniListCon.State!= ConnectionState.Open)AniListCon.Open();

    OdbcCommand tem = new OdbcCommand(SQLCMD,AniListCon);

    tem.ExecuteReader();

}

foreach(AddCommands中的字符串SQLCMD)

{

  ;   if(AniListCon.State!= ConnectionState.Open)AniListCon.Open();

    OdbcCommand tem = new OdbcCommand(SQLCMD,AniListCon);

    tem.ExecuteReader();

}

AniListCon.Close();

}

public static void Save()
{
foreach (string a in Lists.UpdateList.Keys) UpdateEntry(a, Lists.UpdateList[a]);
foreach (string a in Lists.DeleteList) DeleteEntry(a);
foreach (Item a in Lists.AddList) AddEntry(a);
AniListCon.Open();//the connection

foreach (string SQLCMD in DelCommands)
{
   if (AniListCon.State != ConnectionState.Open) AniListCon.Open();
   OdbcCommand tem = new OdbcCommand(SQLCMD, AniListCon);
   tem.ExecuteReader();
}
foreach (string SQLCMD in AddCommands)
{
   if (AniListCon.State != ConnectionState.Open) AniListCon.Open();
   OdbcCommand tem = new OdbcCommand(SQLCMD, AniListCon);
   tem.ExecuteReader();
}
AniListCon.Close();
}

当我添加Rejected条目时,SQL Command看起来像这样 -   INSERT INTO AniChart VALUES('NKunZiGoNJunZiGoSoNEh igsAaaG。 3An12','全智高','国王的阿凡达','全智高手','G.CMay动画与电影','星期六','SW','System.Byte []','动漫','04 -08-2017','2','0','12','100','动作,
游戏,冒险,喜剧','真''

When I add the Rejected entry, the SQL Command looks like this -  INSERT INTO AniChart VALUES('NKunZiGoNJunZiGoSoNEh igsAaaG.3An12','Quan Zhi Gao','The King's Avatar','Quan Zhi Gao Shou','G.CMay Animation & Film','Saturday','SW','System.Byte[]','Anime','04-08-2017','2','0','12','100','Action, Game, Adventure, Comedy','True')

当我添加一个随机条目(并且它接受它)时,SQL Command看起来像这样 -   INSERT INTO AniChart VALUES(' NKepNJNENS0An0','temp','','','','TBA','TBA','System.Byte []','动漫','  -   - ','0',' 0','0','0','','False')

When I add a random entry (and it accepts it), the SQL Command looks like this - INSERT INTO AniChart VALUES('NKepNJNENS0An0','temp','','','','TBA','TBA','System.Byte[]','Anime','  -  -','0','0','0','0','','False')

当我更新测试条目(并且它接受它)时,SQL命令看起来像这样 -   插入AniChart VALUES('NK et-KonNNJaaeeNmNEnls aeSt0An4','测试 - 已知名称','英文名称','日本名称','工作室','排队', '排队','System.Byte []','动漫','01-02-2017','4','0','4','0','标签,
测试', '错误')

When i Update a test entry (and it accepts it), the SQL Command look like this - INSERT INTO AniChart VALUES('NK et-KonNNJaaeeNmNEnls aeSt0An4','A Test - Known Name','English Name','Japanese Name','Studio','Queued','Queued','System.Byte[]','Anime','01-02-2017','4','0','4','0','Tag, Test','False')

所有的命令基本相同,只是在引号中填入不同的数据,我做错了什么?

All of the commands are basely the same, just different data filled in the quotes, What am I doing wrong?

推荐答案

您好Flashkid10,

Hi Flashkid10,

感谢您在此发帖。

根据您的问题与ADO更相关,我将其移至
ADO.NET托管服务提供商
 论坛以获得合适的支持。

According to your question is more related to ADO, I will move it to ADO.NET Managed Providers forum for suitable support.

Visual C#讨论并询问C#编程语言,IDE,库,示例和工具。

The Visual C# discuss and ask the C# programming language, IDE, libraries, samples and tools.

如果您有一些语法或代码错误,请随时与我们联系。我们将尽力为您提供解决方案。

If you have some grammar or code errors, please feel free to contact us. We will try our best to give you a solution.

感谢您的理解与合作。

最诚挚的问候,

Wendy


这篇关于通过C#ODBC连接添加到Access DB的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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