/* DLL등록후(D:\tmp\console\sqlite3.dll) PATH설정후 컴파일&실행
>basic compile
csc.exe /r:"C:\Program Files (x86)\SQLite.NET\bin\System.Data.SQLite.dll" sql11.cs
csc.exe /r:"C:\Program Files (x86)\SQLite.NET\bin\System.Data.SQLite.dll" sql11.cs
csc.exe /r:"C:\Program Files (x86)\SQLite.NET\bin\System.Data.SQLite.dll" sql11.cs
>error message
처리되지 않은 예외: System.IO.FileNotFoundException: 파일이나 어셈블리 'System.Data.SQLite, Version=1.0.66.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139' 또는 여기에 종속되어 있는 파일이나 어셈블리 중 하나를 로드할 수 없습니다. 지정된 파일을 찾을 수 없습니다.
위치: SQLiteManageConsole..ctor()
위치: Program.Main()
>solution
파일이나 어셈블리 ‘System.Data.SQLite, Version=1.0.66.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139’ 또는 여기에 종속되어 있는 파일이나 어셈블리 중 하나를 로드할 수 없습니다. 프로그램을 잘못된 형식으로 로드하려고 했습니다.
이런 오류가 발생하는 경우는 컴파일 환경이 64bit로 되어 있어서 발생합니다.
구성 관리자로 이동을 해서 플랫폼을 Any CPU에서 x86으로 바꾸면 정상적으로 동작합니다.
>platform addition
csc.exe /r:"C:\Program Files (x86)\SQLite.NET\bin\System.Data.SQLite.dll" /platform:"x86" sql11.cs
csc.exe /r:"C:\Program Files (x86)\SQLite.NET\bin\System.Data.SQLite.dll" /platform:"x86" sql11.cs
csc.exe /r:"C:\Program Files (x86)\SQLite.NET\bin\System.Data.SQLite.dll" /platform:"x86" sql11.cs
csc.exe /r:"C:\Program Files (x86)\SQLite.NET\bin\System.Data.SQLite.dll" /platform:"x86" sql11.cs
csc.exe /r:"C:\Program Files (x86)\SQLite.NET\bin\System.Data.SQLite.dll" /platform:"x86" sql11.cs
csc.exe /r:"C:\Program Files (x86)\SQLite.NET\bin\System.Data.SQLite.dll" /platform:"x86" sql11.cs
csc.exe /r:"C:\Program Files (x86)\SQLite.NET\bin\System.Data.SQLite.dll" /platform:"x86" sql11.cs
>success compile
*/
using System;
using System.IO;
using System.Data.SQLite;
class Program
{
public static void Main()
{
SQLiteManageConsole nm = new SQLiteManageConsole();
nm.running();
}
}
class SQLiteManageConsole
{
//definition
const int sqlCmdLine=1;
//variables
SQLiteConnection Conn=null;
void SQLiteSys____Open()
{
Conn = new SQLiteConnection("Data Source=:memory:;Version=3;");
Conn.Open();
}
void SQLiteSys____Create()
{
int result;
using (StreamReader rdr = new StreamReader("D:\tmp/console/CreateDB.sql"))
{
string sql = rdr.ReadToEnd();
SQLiteCommand cmd = new SQLiteCommand(sql, Conn);
try
{
result = cmd.ExecuteNonQuery();
}
catch(SQLiteException ae)
{
Console.WriteLine(ae.ToString());
}
}
}
void SQLiteSys____Insert()
{
string[] sql = new string[]
{
"insert into imt_mst_resource(resid, hostid, restype, resname) values('100101', '1001', 'linux', 'iuli_linux');",
};
int kk;
for(kk=0; kk<sqlCmdLine; kk++)
{
SQLiteCommand cmd = new SQLiteCommand(sql[kk], Conn);
try
{
int result = cmd.ExecuteNonQuery();
}
catch(SQLiteException ae)
{
Console.WriteLine(ae.ToString());
}
}
}
void SQLiteSys____Select()
{
string sql = "select resid, hostid, restype, resname from imt_mst_resource;";
SQLiteCommand cmd = new SQLiteCommand(sql, Conn);
SQLiteDataReader rdr = cmd.ExecuteReader();
int kk=1;
while(rdr.Read())
{
try
{
string resid = rdr["resid"].ToString();
string hostid = rdr["hostid"].ToString();
string restype = rdr["restype"].ToString();
string resname = rdr["resname"].ToString();
Console.WriteLine(">>>[" + kk.ToString("0000") + "] :" + resid + "/" + hostid + "/" + restype + "/" + resname);
kk++;
}
finally
{
//
}
}
rdr.Close();
}
public void running()
{
SQLiteSys____Open();
SQLiteSys____Create();
SQLiteSys____Insert();
SQLiteSys____Select();
}
}
'c# 언어 > 중급과정' 카테고리의 다른 글
C Pattern(C로 만드는 Interface) (0) | 2022.04.14 |
---|---|
c# using - statement(File및 Font와 같은 클래스들에 유용) (0) | 2022.04.11 |
SQLite Version Check(SELECT SQLITE_VERSION()) (0) | 2022.04.06 |
tcp:sendfile-server src sample (0) | 2022.04.05 |
tcp:sendfile-client src sample (0) | 2022.04.05 |