요번에 VS.NET 2003 설치하구 잠깐 짬내서 해봤습니다.
MR은 서버 셋팅이 까다로와서 RDA방식으로 했구요.
EVC로 하다가 C#으로 하니 엄청 편하네여..@.@
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
private void button1_Click(object sender, System.EventArgs e)
{
string strLocalDB = "\\NorthWind.sdf";
string strCon = "Provider=microsoft.sqlserver.oledb.ce.2.0;Data Source=" + strLocalDB;
string strOleCon = "provider=sqloledb; data source=192.168.0.2; Initial Catalog=NorthWind; user id=sa; password=sa";
string strSQL = "SELECT ProductID, ProductName, UnitPrice FROM Products";
// 기존 파일 삭제
System.IO.File.Delete( strLocalDB );
// Local DB 생성
SqlCeEngine engine = new SqlCeEngine( strCon );
engine.CreateDatabase();
System.Data.SqlServerCe.SqlCeRemoteDataAccess rda;
SqlCeConnection con;
SqlCeCommand cmd;
SqlCeDataReader reader;
try
{
// RDA Pull
rda = new SqlCeRemoteDataAccess( "http://192.168.0.2/mobile/sscesa20.dll",
"", "", strCon );
rda.Pull( "Products", strSQL, strOleCon );
// Local Open
con = new SqlCeConnection( "Data Source = \\Northwind.sdf;" );
cmd = new SqlCeCommand( strSQL, con );
cmd.CommandType = CommandType.Text;
cmd.Connection.Open();
reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
while( reader.Read() )
{
System.Windows.Forms.ListViewItem lvi;
lvi = new ListViewItem( reader.GetValue(0).ToString() );
lvi.SubItems.Add( reader.GetValue(1).ToString() );
lvi.SubItems.Add( reader.GetValue(2).ToString() );
listView1.Items.Add( lvi );
}
reader.Close();
con.Close();
}
catch(SqlCeException ex)
{
SqlCeErrorCollection errorCollection = ex.Errors;
StringBuilder bld = new StringBuilder();
Exception inner = ex.InnerException;
if (null != inner)
{
MessageBox.Show("Inner Exception: " + inner.ToString());
}
foreach (SqlCeError err in errorCollection)
{
bld.Append("\n Error Code: " + err.HResult.ToString("X"));
bld.Append("\n Message : " + err.Message);
bld.Append("\n Minor Err.: " + err.NativeError);
bld.Append("\n Source : " + err.Source);
foreach (int numPar in err.NumericErrorParameters)
{
if (0 != numPar) bld.Append("\n Num. Par. : " + numPar);
}
foreach (string errPar in err.ErrorParameters)
{
if (String.Empty != errPar) bld.Append("\n Err. Par. : " + errPar);
}
MessageBox.Show(bld.ToString());
bld.Remove(0, bld.Length);
}
}
}
MR은 서버 셋팅이 까다로와서 RDA방식으로 했구요.
EVC로 하다가 C#으로 하니 엄청 편하네여..@.@
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
private void button1_Click(object sender, System.EventArgs e)
{
string strLocalDB = "\\NorthWind.sdf";
string strCon = "Provider=microsoft.sqlserver.oledb.ce.2.0;Data Source=" + strLocalDB;
string strOleCon = "provider=sqloledb; data source=192.168.0.2; Initial Catalog=NorthWind; user id=sa; password=sa";
string strSQL = "SELECT ProductID, ProductName, UnitPrice FROM Products";
// 기존 파일 삭제
System.IO.File.Delete( strLocalDB );
// Local DB 생성
SqlCeEngine engine = new SqlCeEngine( strCon );
engine.CreateDatabase();
System.Data.SqlServerCe.SqlCeRemoteDataAccess rda;
SqlCeConnection con;
SqlCeCommand cmd;
SqlCeDataReader reader;
try
{
// RDA Pull
rda = new SqlCeRemoteDataAccess( "http://192.168.0.2/mobile/sscesa20.dll",
"", "", strCon );
rda.Pull( "Products", strSQL, strOleCon );
// Local Open
con = new SqlCeConnection( "Data Source = \\Northwind.sdf;" );
cmd = new SqlCeCommand( strSQL, con );
cmd.CommandType = CommandType.Text;
cmd.Connection.Open();
reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
while( reader.Read() )
{
System.Windows.Forms.ListViewItem lvi;
lvi = new ListViewItem( reader.GetValue(0).ToString() );
lvi.SubItems.Add( reader.GetValue(1).ToString() );
lvi.SubItems.Add( reader.GetValue(2).ToString() );
listView1.Items.Add( lvi );
}
reader.Close();
con.Close();
}
catch(SqlCeException ex)
{
SqlCeErrorCollection errorCollection = ex.Errors;
StringBuilder bld = new StringBuilder();
Exception inner = ex.InnerException;
if (null != inner)
{
MessageBox.Show("Inner Exception: " + inner.ToString());
}
foreach (SqlCeError err in errorCollection)
{
bld.Append("\n Error Code: " + err.HResult.ToString("X"));
bld.Append("\n Message : " + err.Message);
bld.Append("\n Minor Err.: " + err.NativeError);
bld.Append("\n Source : " + err.Source);
foreach (int numPar in err.NumericErrorParameters)
{
if (0 != numPar) bld.Append("\n Num. Par. : " + numPar);
}
foreach (string errPar in err.ErrorParameters)
{
if (String.Empty != errPar) bld.Append("\n Err. Par. : " + errPar);
}
MessageBox.Show(bld.ToString());
bld.Remove(0, bld.Length);
}
}
}
반응형
'Dev > Mobile' 카테고리의 다른 글
한가지 더 여쭤볼게요.^^ (1) | 2003.09.18 |
---|---|
evb의 픽처박스에 에뮬레이터 상으로 bmp파일을 올릴려면 어떻게 해야 하나요? (1) | 2003.09.18 |
sdf파일은 pda상에서만 생성되나요? (2) | 2003.09.17 |
evb로 pc에 sdf파일을 생성할려고 하는데 에러가 뜹니다.-.-; (1) | 2003.09.17 |
명규님. RAS(window ce)에 관한 질문입니다.답변 부탁드려요. (1) | 2003.09.17 |