Access 사용 요약

3675 단어 Access사용 요약
1. Access를 어떻게 사용하는지 2년 전에 Access를 조금 썼는데 사소한 문제가 많아서 더 이상 사용하지 않았다.이번 프로그램은 천메가 와이드 네트워크의 가상 호스트에 놓여 있습니다. 이 가상 호스트는 Sqlite를 지원하지 않습니다. 데이터를 읽을 때 좋습니다. 데이터베이스에 글을 쓰면 오류가 발생합니다. Some Disk I/O Error Occured.신기하게도 가상 호스트를 바꿔봤는데 문제가 없어요.설명은 내 프로그램의 문제가 아니다.나중에 Access로만 바꿀 수 있습니다.ADO로.NET가 데이터베이스를 읽는 데는 사실 차이가 많지 않다. 주로 연결 문자열의 문제이고 데이터베이스 차이도 주의해야 한다.1.1 데이터베이스 연결 문자열 연결 문자열은 간단합니다. DataSource만 지정하면 됩니다.Data 디렉토리.Asp.net의 이런 방식은 우리로 하여금 상대적인 경로로 데이터베이스 파일의 위치를 지정하는 데 매우 편리하게 할 수 있다.여기서 Provider는 Oledb 드라이브를 사용합니다.1.2 프로그램에서 사용하는 것은 매우 간단하다. 단지 연결,Command 이전의 접두사를 바꾸면 된다.예를 들다
 
public DataTable GetAll(string num,int min,int startRecord, int pageSize)
{
string sql = string.Format("select Num ,minPrice ,isUsed from PhoneNumber where Num like '{0}%' and isUsed=0", num);
if (min != 0)
{
sql += "and minPrice=@p1";
}
using (OleDbConnection conn = new OleDbConnection(SqlHelper.ConnStr))
{
conn.Open();
OleDbCommand cmd = conn.CreateCommand();
cmd.CommandText = sql;
if (min != 0)
cmd.Parameters.AddWithValue("p1", min);
OleDbDataAdapter adp = new OleDbDataAdapter(cmd);
DataTable table = new DataTable();
adp.Fill(startRecord,pageSize,table);
return table;
}
}
물론 using:using 시스템을 추가해야 합니다.Data.OleDb; using System.Data;ADO.NET의 처리 방식은 모두 매우 유사하다. 사실상, ADO.NET에는 Db를 접두사로 하는 Connection,Command 등의 종류가 있는데 이런 구체적인 종류는 모두 DbConnection에서 계승된 것이기 때문에 보기에 모두 같다.1.3 차이는 위에서 언급한 바와 같이 Access는 매우 기이하다.다음은 내가 만난 것들을 열거한다. 1.3.1user는 키워드이다. 만약 표 이름이나 열 이름이user이고 괄호를 넣지 않으면 오류가 발생할 수 있다.물론 모든 테이블 이름과 열 이름에 괄호를 일치시키는 것은 좋은 프로그래밍 습관이다.1.3.2 DateTime형 데이터를 직접 삽입하면 오류가 발생합니다. 데이터베이스의 필드 유형이 Date가 확실하더라도 C#의 DateTime형 ToString()을 나중에 삽입하는 방식입니다.1.3.3bool형이나bit형이 없습니다. yesno라고 합니다. 1.3.4 명령에서 여러 개의 sql를 지원하지 않습니다.이 제한도 매우 싫다. 매번command를 실행할 때마다 sql만 포함할 수 있기 때문에 매우 불편하다. 설령 Sqlite와 같은 작은 데이터베이스라도 이 제한은 없다.1.3.5 매개 변수 순서의 문제.성명된 매개 변수의 순서는command에 매개 변수를 추가하는 성명과 일치해야 합니다.그렇지 않으면 아무 잘못도 보고하지 않고 결과에 영향을 주지 않을 가능성이 높다.Access 최고급 데이터베이스네요!!예를 들면
 
string sql = "update [user] set WorkField=@p1, Company=@p3,IC=@p4,Contact=@p5,Phone=@p6,Mobile=@p7,Address=@p8,Email=@p9,Introduction=@p10 "
+ "where username=@p2";
cmd.CommandText = sql;
cmd.Parameters.AddWithValue("p1", entity.WorkField);
cmd.Parameters.AddWithValue("p3", entity.Company);
cmd.Parameters.AddWithValue("p4", entity.IC);
cmd.Parameters.AddWithValue("p5", entity.Contact);
cmd.Parameters.AddWithValue("p6", entity.Phone);
cmd.Parameters.AddWithValue("p7", entity.Mobile);
cmd.Parameters.AddWithValue("p8","");
cmd.Parameters.AddWithValue("p9", string.IsNullOrEmpty(entity.Email)?" ":entity.Email);
cmd.Parameters.AddWithValue("p10", string.IsNullOrEmpty(entity.Introduction)?" ":entity.Introduction);
cmd.Parameters.AddWithValue("p2", entity.UserName);
int i= cmd.ExecuteNonQuery(); ,

cmd.Parameters.AddWithValue("p2", entity.UserName);
앞에 가면 안 돼요. 업데이트가 안 돼요.다행히 csdn에서 누군가도 이 문제를 묻는 것을 찾았는데, 그렇지 않았다면 어떻게 해야 할지 몰랐을 것이다.2.z-index의 문제.다른 HTML 요소 내부에 포함된 HTML 요소의 z-index는 같은 차원에 있는 요소의 z-index에 비해 그 부모 요소 이외의 요소의 z-index에 영향을 미치지 않는다. 즉, 부모 요소의 z-index가 매우 작다면 예를 들어 0, 내부 요소의 z-index는 매우 높고 1000이다.부모 원소가 인접한 원소의 z-index는 2입니다. 내부 원소가 넘쳐나고 인접한 원소와 겹치면 덮어쓰는 것은 내부 원소입니다.

좋은 웹페이지 즐겨찾기