2012年9月19日 星期三

WCF IIS 架設

剛寫好的 WCF 要架設到 IIS 上面 ,發生以下的錯誤

搜尋了google 試了很多方法,最後找到正確的問題
完整的錯誤訊息是:
HTTP 錯誤 404.3 - Not Found 因為延伸組態的問題,而無法提供您要求的網頁。 如果此網頁是指令碼,請新增處理常式。 如果應下載檔案,請新增 MIME 對應。 詳細的錯誤 InformationModule StaticFileModule。
當 [Windows Communication Foundation HTTP 啟動] 未在 [控制台] 中明確設定時,就會發生這個錯誤訊息。 若要進行這項設定,請移至 [控制台],按一下視窗左下角的 [程式集]。 按一下 [開啟或關閉 Windows 功能]。 展開 [Microsoft .NET Framework 3.5.1],並選取 [Windows Communication Foundation HTTP Activation]。

重新安裝好後即可正常執行



還有一些沒遇到的,以後也可以參考這裡



2012年5月14日 星期一

SQLite for PC , for mobile

首先到
下載ADO.net  for sqlite
SQLiteBrowser

在PC 上面操作是沒有什麼問題!


 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim filename As String = Application.StartupPath + "\Test.db3"
        If Not File.Exists(filename) Then
            SQLite.SQLiteConnection.CreateFile(filename)
        End If


        Dim oConn As New SQLiteConnection("Data Source=" + filename)
        Try
            oConn.Open()
            '執行SQL指令
            Dim zSQL As String = vbNullString
            Dim zWord As String = vbNullString
            Dim zDeno As String = vbNullString
            Dim oCmd As SQLiteCommand = Nothing
            zSQL = "CREATE TABLE  IF NOT EXISTS coffees (  F1 TEXT PRIMARY KEY,  F2 TEXT );"
            oCmd = New SQLiteCommand(zSQL, oConn)
            oCmd.ExecuteNonQuery()




            For i = 0 To 4
                zWord = "1234" + CStr(i)
                zDeno = "5678"
                zSQL = "INSERT INTO coffees (F1,F2) VALUES ('" & zWord & "','" & zDeno & "')"
                oCmd = New SQLiteCommand(zSQL, oConn)
                oCmd.ExecuteNonQuery()
            Next


            Label1.Text = "Data inserted ready!!!"
            oCmd.Dispose()
            oConn.Close()
        Catch ex As Exception
            Label1.Text = ex.Message
        End Try
    End Sub

在mobile 
要參考C:\Program Files (x86)\SQLite.NET\bin\CompactFramework\SQLite.Interop.066.DLL
不過在這邊卻踢到鐵板,看了一下錯誤訊息,就自己複製了一個DLL把檔名改成
System.Data.SQLite.dll結果就可以了

  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim mypath As String = System.IO.Path.GetDirectoryName(Reflection.Assembly.GetExecutingAssembly.GetName.CodeBase.ToString)
        mypath += "\Test.db3"


        If Not File.Exists(mypath) Then
            SQLiteConnection.CreateFile(mypath)
        End If


        Dim oConn As New SQLiteConnection("Data Source=" + mypath)
        Try
            oConn.Open()
            '執行SQL指令
            Dim zSQL As String = vbNullString
            Dim zWord As String = vbNullString
            Dim zDeno As String = vbNullString
            Dim oCmd As SQLiteCommand = Nothing
            zSQL = "CREATE TABLE  IF NOT EXISTS coffees (  F1 TEXT PRIMARY KEY,  F2 TEXT );"
            oCmd = New SQLiteCommand(zSQL, oConn)
            oCmd.ExecuteNonQuery()


            For i = 0 To 1000
                zWord = "1234" + CStr(i)
                zDeno = "5678"
                zSQL = "INSERT INTO coffees (F1,F2) VALUES ('" & zWord & "','" & zDeno & "')"
                oCmd = New SQLiteCommand(zSQL, oConn)
                oCmd.ExecuteNonQuery()
            Next


        Catch ex As Exception
            MessageBox.Show(ex.ToString)
        End Try


以上兩個code是參考別人網站的,在mobile操作時,要把SQLite.Interop.dll直接複製到mobile裡面。
小歐參考網站



2012年2月6日 星期一

VB.net 建立Access (資料庫 被 鎖定 )


 Private Sub CreateMDB(ByVal Filename As String)
     
        If Not File.Exists(Filename) Then
            Try
                Dim MyCtlog As New ADOX.Catalog
                MyCtlog.Create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Filename + ";Jet OLEDB:Engine Type=5")
                Dim connection As ADODB.Connection = DirectCast(MyCtlog.ActiveConnection, ADODB.Connection)

                If (Not IsDBNull(connection)) Then
                    connection.Close()
                    ' MyCtlog.ActiveConnection = Nothing
                    ' MyCtlog = Nothing
                End If
            Catch ex As Exception
                MsgBox(ex.Message)
            End Try

        End If
    End Sub

2012年2月4日 星期六

MS - SQL 設定 自動 遞增

以前在寫 資料庫的時候都是 下語法
雖然google  都先查到 http://www.1keydata.com/tw/sql/sql.html
不過我比較喜歡去    http://webdesign.kerthis.com/sql/sql_syntax
自動遞增語法
http://webdesign.kerthis.com/sql/sql_auto_increment


CREATE TABLE customers
(
  C_Id INT PRIMARY KEY IDENTITY,
  Name varchar(50),
  Address varchar(255),
  Phone varchar(20)
);
SQL Server預設會由1開始逐列自動遞增(2,3,4...)。
不過您也可以替IDENTITY欄位指定一個起始值與遞增量,語法如下:
將IDENTITY改成「IDENTITY(起始值,遞增量)」
雖然說下語法是滿方便的一件事情,不過要從 SQL Server Management Studio去設定
因為沒摸過找了一下,可能因為太簡單,網路上都沒有說,所以就自己摸索







2012年1月17日 星期二

第一天玩 joomla 的會員功能...Gmail 寄不出去

開發環境
XP SP3
Xampp (C:\xampp\....安裝路徑)



C:\xampp\php.ini裡面的 加入 extension=php_openssl.dll 


害我搞半天,他乃乃的雄,三更半夜搞我,你當我明天不用上班喔


http://www.joomla123.com.tw/site-manage/send-joomla-mail-by-gmail-smtp.html
原廠網址


郵件模式:SMTP

寄件地址: somebody@gmail.com
發件人 名稱:somebody
SMTP認證:
SMTP Security: SSL
SMTP Port: 465
SMTP 用戶名: somebody@gmail.com
SMTP 密碼:**********
SMTP 主機:smtp.gmail.com






2012年1月10日 星期二

VB.net INI 讀寫

參考
http://chengchao.blogspot.com/2008/08/vbnet-ini.html


' vb.net 中读写 ini 文件和 vb6 中的做法是一致的,也要使用 Windows Api 的方法
' 唯一要注意的是:在 vb.net 中,api 声明中的 Long 型要改为 int32 类型。

Public Class Form1
    Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" ( _
    ByVal lpApplicationName As String, _
    ByVal lpKeyName As String, ByVal lpdefault As String, _
    ByVal lpretrunedstring As String, ByVal nSize As Int32, _
    ByVal lpFilename As String) As Int32


    Private Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" ( _
    ByVal lpApplicationName As String, _
    ByVal lpKeyName As String, ByVal lpString As String, _
    ByVal lpFilename As String) As Int32






    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        WritePrivateProfileString("Section", "Key", "Value", Application.StartupPath + "\a.ini")


    End Sub


    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim strIni As String
        strIni = New String(" ", 100)
        GetPrivateProfileString("Section", "Key", "", strIni, 100, Application.StartupPath + "\a.ini")
        MsgBox(strIni)
    End Sub
End Class

2012年1月9日 星期一

Vb.net 2008 Microsoft.Jet.OLEDB.4.0' 提供者並未登錄於本機電腦上

 windows 7 專業版 X64
  vb.net  2008
  framework3.5




難得複習 一下 access 結果 顯示電腦
Microsoft.Jet.OLEDB.4.0' 提供者並未登錄於本機電腦上
上網查了一下 VB 論壇


http://social.msdn.microsoft.com/forums/zh-TW/238/thread/c55decf8-53a4-4c82-8aa3-d9f3e6c627c0


Microsoft Jet 不支援 64 位元的版本,你的應用程式不能編譯為 64 位元的應用程式,而必須編譯為 32 位元的應用程式,才可以使用 Microsoft Jet,你可以看看:


不過還是找不到,最後自己摸了一下
專案==> project name + 屬性 == > 進階編譯選項===> 目標 CPU 選擇  X86(原本是 ANYCPU)
打完收工,謝謝


2012年1月8日 星期日

VB.net 基本的 對話框 字體 顏色 開啟檔案


Public Class Form1

    Private Sub btn_FontDialog_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_FontDialog.Click
        FontDialog1.ShowColor = True
        FontDialog1.ShowApply = True
        '套用的功能就是 視窗不會關閉 會產生 apply的事件
        '這樣使用者就不會因為按下確定(視窗會關閉)以後 還要在重新 showdailog 一次
        '算是體貼使用者設計
        FontDialog1.ShowDialog()
    End Sub

    Private Sub FontDialog1_Apply(ByVal sender As Object, ByVal e As System.EventArgs) Handles FontDialog1.Apply
        Label1.Font = FontDialog1.Font
        Label1.ForeColor = FontDialog1.Color
    End Sub

    Private Sub btn_ColorDialog_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_ColorDialog.Click
        ColorDialog1.FullOpen = True '展開所有功能
        ColorDialog1.ShowDialog()
        Label2.BackColor = ColorDialog1.Color
    End Sub

    Private Sub btn_OpenFileDialog_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_OpenFileDialog.Click
        OpenFileDialog1.Reset()
        OpenFileDialog1.Multiselect = True
        OpenFileDialog1.Title = "來選擇一個或多個檔案吧"
        OpenFileDialog1.FileName = Application.StartupPath + "\test.text"
        OpenFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*"

        If OpenFileDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then
            ListBox1.Items.Clear()

            For Each myfilename In OpenFileDialog1.FileNames
                ListBox1.Items.Add(myfilename)
            Next
        End If

    End Sub

End Class