2011年11月30日

Android 讀取資料庫(SQLite)的下拉式選單(Spinner)

DbHelper.java
 
public class DbHelper extends SQLiteOpenHelper {
 private static final String DATABASE_NAME = "xxxx.sqlite"; //資料庫名稱
 private static final int DATABASE_VERSION = 1; //資料庫版本
 private static final String table_name = "table";
 private SQLiteDatabase db;
 
 public DbHelper(Context context) { //建構子
  super(context, DATABASE_NAME, null, DATABASE_VERSION);
  db = this.getWritableDatabase();
 }
 
 @Override
 public void onCreate(SQLiteDatabase db) { //初始化資料庫 
  DATABASE_CREATE_TABLE =
       "create table class1 ("
           + "_id INTEGER PRIMARY KEY AUTOINCREMENT,"
           + "class_name TEXT"
       + ");";
  db.execSQL(DATABASE_CREATE_TABLE);
  String TABLE_Insert = 
    "INSERT INTO class1 (class_name) VALUES ('食');";
  db.execSQL(TABLE_Insert);
  TABLE_Insert = 
    "INSERT INTO class1 (class_name) VALUES ('衣');";

  db.execSQL(TABLE_Insert);
 }

public Cursor getclass1(){  //取得class1資料表內容
  return db.query("class1",new String[] {"_id","class_name"} , null, null, null, null, null);
 }

MainActivity.java

public class MainActivity extends Activity {
 private DbHelper dbHelper; 
 @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.firstlayout);
        Spinner sp01 = (Spinner)findViewById(R.id.spinner01);
        dbHelper = new DbHelper(this);
        final Cursor cursor = dbHelper.getclass1();
         SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, android.R.layout.simple_spinner_item ,cursor, new String[] { "class_name" }, new int[] {android.R.id.text1});
         adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
         sp01.setAdapter(adapter);

          //.....處理點選後行為....

 }

}

2011年11月29日

ASP.NET C# 用Gmail SMTP寄信

利用C# Mailmessage方法

string smtpserver = "smtp.gmail.com"; //Gmail smtp 主機
string smtpaccount = "xxx@gmail.com"; //Gmail 帳號
string smtppassword = "password";     //Gmail 密碼
            
MailMessage msg = new MailMessage();
msg.From = new MailAddress("xxx@gmail.com", "老王");
msg.To.Add("ooo@yahoo.com");  //收件人
msg.Bcc.Add("xxx@yahoo.com"); //密件副本 
msg.Subject = "標題";     
msg.IsBodyHtml = true;       //啟用Html格式內文
msg.Body = "信件內容";
SmtpClient smtp = new SmtpClient(smtpserver);
smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
smtp.Port = 587;         //Gmail smtp port
smtp.EnableSsl = true;   //開啟ssl模式
smtp.Credentials = new System.Net.NetworkCredential(smtpaccount, smtppassword);
smtp.Send(msg); 

2011年11月28日

ASP.NET LINQ To Entity Model 新增/刪除/更新 語法範例

Database TestDB如下:
新增 (Insert):

using (TestDBEntities ctx = new TestDBEntities())

{

//Create new Department

Dept d = new Dept() { DeptName = "ADO Entity" };

//Create new Employee 1

EmpDept ed1 = new EmpDept() { EmpName = "ADO Employee 1" };

//Create new Employee 2

EmpDept ed2 = new EmpDept() { EmpName = "ADO Employee 2" };

//Add employee to the Dept *OBJECT*

d.EmpDept.Add(ed1);

d.EmpDept.Add(ed2);

//Updating the context

ctx.AddToDept(d);

//Save to Database

ctx.SaveChanges();

}

更新(Update):

using (TestDBEntities ctx = new TestDBEntities())

{

//Get an existing Department

Dept dep = (from d in ctx.Dept

where d.DeptId == 22

select d).First();

//Set new Department name

dep.DeptName = "ADO.NET 3.0";

//Create new Employee 2

EmpDept ed2 = new EmpDept() { EmpName = "ADO 2" };

//Add *new* employee to the Dept *OBJECT*

dep.EmpDept.Add(ed2);

//Save to Database

ctx.SaveChanges();

}  

刪除(Delete):

using (TestDBEntities ctx = new TestDBEntities())

{

//Get an existing Department

Dept dep = (from d in ctx.Dept.Include("EmpDept")

where d.DeptId == 22

select d).First();

/*

Needd to do ToList() becuase once you delete

a record then iteration will not be possible.

*/

foreach (EmpDept ed in dep.EmpDept.ToList())

{

//This removes relationship from Context

dep.EmpDept.Remove(ed);

//Delete it from context

ctx.DeleteObject(ed);

}

//Delete the master table

ctx.DeleteObject(dep);

//Save to Database

ctx.SaveChanges();
}

2010年6月3日

Windows 7 桌面捷徑消失問題

在Windows 7 中,當使用者的網路捷徑超過4個時,就可能會發生捷徑無故消失的情形。
要解決這個問題,
可到『控制台』=>『系統』=>『系統保護』=>到設定中把系統保護關閉。
即可解決這個問題。

資料來源:
http://support.microsoft.com/?scid=kb%3Ben-us%3B978980&x=16&y=11

2010年5月21日

從AD的群組中匯出成員

要從AD的群組匯入匯出資料,可以使用Ldifde.exe 公用程式。
(可參考 http://support.microsoft.com/kb/555636/zh-tw)

但是如果只是要匯出某個群組中的成員帳號,
有簡易的方式可使用。
在Command line 底下輸入 :
 「net group "群組名稱"」
        or
「net localgroup "本機群組名稱"」

ex. net group "Domain admins"
即可輸出該群組下所有成員的帳號。

2010年5月7日

如何轉移Symantec Endpoint Protection Manager (11.x)到另一台伺服器

如何完整轉移SEPM至另一台伺服器,以SEPM(11.0.6a 英文版為例)。
步驟如下:
  1. 在新伺服器上安裝 Symantec Endpoint Protection Manager
  2. Management Server Configuration Wizard ,
    選擇 Advanced Configuration ,並選擇所要管理的Client數量。
  3. 選擇 Install an additionalsite. 它將會把原伺服器的資料複寫到新伺服器。
  4. 選擇 Next
  5. 自行定義 SiteName  並按下 Next
  6. 輸入舊伺服器的資訊:
       Replication Server Name (舊伺服器的IP或主機名稱)
       Replication Server Port (預設為 8443)
       Administrator Name (舊伺服器SEP Manager 登入的帳號)
       Password (舊伺服器SEP Manager 登入的密碼)
  7. 按下 Next
  8. 出現警告視窗, 按下 Yes
  9. 自行定義資料庫是使用 Embedded database Microsoft SQL Server (不論舊伺服器是用哪種模式皆可)
      按下 Next .
  10. 登入新伺服器的 Symantec Endpoint Manager

  11. 點選 Policies
  12. 點選 Policy Components
  13. 點選 Management Server Lists.
  14. 選擇 Default Management Server List for ‘新伺服器名稱’
  15. 按下右鍵,選擇 Assign 
  16. 選擇要給新伺服器管理的群組(全選),並按下 Assign 
  17. 當所有的Client端轉移到新伺服器底下時,Computer icon會有一個小綠點,代表Client目前在線上且已連接到新伺服器。若Computer icon顯示一個紅色箭頭代表該Client仍然連接舊伺服器。
  18. 移除舊伺服器的 Symantec Endpoint Protection Manager (SEPM)
  19. 登入新伺服器的SEPM並到Admin底下移除舊伺服器的 Replication partnersRemote Sites
  20. Management Server Lists Policy Component 下, 刪除 Default Management Server List for ‘舊伺服器名稱’

還原 Windows 的系統/開機磁碟機代號

  1. 請將電腦與系統狀態製作完整的系統備份。
  2. 以系統管理員的身分登入。
  3. 啟動 Regedt32.exe。
  4. 至下列登錄機碼:
    HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices
  5. 按 一下 [MountedDevices]
  6. [安全性] 功能表上,按一下 [權限]
  7. 確認 [系統管理員] 具有完整的控制權。當您執行完成這些步驟以後,請將它改回來。
  8. 結束 Regedt32.exe,啟動 Regedit.exe。
  9. 找 出下列登錄機碼:
    HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices
  10. 尋 找您想要變更為的磁碟機代號 (新的)。請尋找 \DosDevices\C:。
  11. 用滑鼠右鍵按一下 [\DosDevices\C:],然後按一下 [重新命名]

    注意 您必須使用 Regedit 取代 Regedt32 以重新命名這個登錄機碼。
  12. 將它重新命名為一個沒用過的磁碟機代號 \DosDevices\Z:。

    這樣就會釋出磁碟機代號 C。
  13. 尋找您想要變更的磁碟機代號。請尋找 \DosDevices\D:。
  14. 用滑鼠右鍵按一下 [\DosDevices\D:],然後按一下 [重新命名]
  15. 將它重新命名為一個適當的 (新的) 磁碟機代號 \DosDevices\C:。
  16. 按一下 \DosDevices\Z: 的值,按一下 [重新命名],將它改回 \DosDevices\D:。
  17. 結 束 Regedit,啟動 Regedt32。
  18. 將「系統管理員」的權限變更為原來的設定 (可能應該是「唯讀」)。
  19. 重 新啟動電腦。
資料來源:http://support.microsoft.com/kb/223188/zh-tw

2010年4月11日

線上串流影音下載網頁

如果想要下載在網頁上的影片或音樂時該怎麼辦呢?
以下提供了幾個知名網站的線上串流影音的下載工具。
其原理都是利用分析網頁原始碼的方式來進行下載。
下載方式都大同小異,複製影音所在的網址在貼到下載工具的網頁即可按鈕下載。

Yam 天空影音 - http://file.iiii.tw/ (IE support only)
Youtube / Google Video - http://kej.tw/flvretriever/  or  http://keepvid.com/

##EasyReadMore##