Ⅰ vb.net 怎麼操作資料庫
Private stroledbprovider As String = "System.Data.OleDb" '大小寫 -------更改此處可連接不同類型的資料庫
'連接資料庫的信息,更改連接不同資料庫信息-------"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=datapath;Persist Security Info=false"
Private stroledbconn As String = "Provider=sqlOLEDB;Data Source=localhost,10000;Initial Catalog=haofefe;user id=sa ; password=123" 'Integrated Security=SSPI"
'*********************************************************************
'************生成Dbproviderfactory,idbconnection,idbcommand,and idatareader********
Dim cnfactory As IDbConnection
Dim drcustsreader As IDataReader
Dim cmfactory As IDbCommand
Dim dpfactory As DbProviderFactory
Public login As Boolean = False
Private Sub createconn()
Try
dpfactory = System.Data.Common.DbProviderFactories.GetFactory(stroledbprovider)
cnfactory = dpfactory.CreateConnection
cnfactory.ConnectionString = stroledbconn
cmfactory = cnfactory.CreateCommand
cmfactory.CommandType = CommandType.Text
Catch ex As Exception
MsgBox(ex.ToString)
End Try
End Sub
'*********************************************************
'利用生成的連接
'****************查詢數據**************
Public Function getsources(ByVal strcomm As String) As DataTable
Dim i As Integer
Try
Call createconn() '調用生成實例
cmfactory.CommandText = strcomm
getsources = New DataTable
cnfactory.Open()
drcustsreader = cmfactory.ExecuteReader(CommandBehavior.KeyInfo)
With drcustsreader
For i = 0 To .FieldCount - 1
getsources.Columns.Add(.GetName(i))
Next
While .Read
Dim objcells(.FieldCount - 1) As Object
.GetValues(objcells)
getsources.Rows.Add(objcells)
End While
End With
drcustsreader.Close()
'getsources.Load(drcustsreader)
Return getsources
cnfactory.Close()
Catch ex As Exception
cnfactory.Close()
Return New Data.DataTable
MsgBox(ex.ToString)
End Try
End Function
'**********************************
'-------------------------------------------------------------------------------------------------------------
'*******************查看已連接信息******************
Public Sub connectionstatistics(ByVal conn As SqlConnection)
Dim htstats As Hashtable
Try
htstats = CType(conn.RetrieveStatistics, Hashtable)
Dim strstats As String
strstats = "ServerVersion: " + conn.ServerVersion.ToString + ControlChars.CrLf
Dim ostat As Object
Dim strstat As String
For Each ostat In htstats.Keys
strstat = ostat.ToString
If InStr(strstat, "Time") > 0 Then
strstats = strstats + strstat + "=" + Microsoft.VisualBasic.Format(CLng(htstats(strstat)) / 1000, "#,##0.000") + " secs" + vbCrLf
Else
strstats = strstats + strstat + "=" + htstats(strstat).ToString + ControlChars.Cr + ControlChars.Lf
End If
Next
MsgBox(strstats, MsgBoxStyle.Information, "Connection Statistics")
Catch ex As Exception
MsgBox(ex.ToString)
End Try
End Sub
Ⅱ .Net中操作MySql資料庫
這是在中為連接MySql中編寫的一個類遲尺庫。你可以使用這個類庫直接操作MySql資料庫。氏沒
在使用這個類庫之前,你必須安裝
ODBC MYSQL 3.51
Driver
在這個庫中有三個類:
ManipStringForMySQL: 此類修改SGBD的字元串
MySQL_Requettes: 發送請求
MySQL_Utils : 對SGBD數據進行測試
下面是使碼核高用此類庫操作MySql的一個例子
//對DataSet進行操作 www.yestar2000iTbulo.comW7Cvs
Public Shared Function MyODBCDataset(ByVal ReqSQL As String, _
ByVal LaBase As String, ByVal Server As String, _
ByVal Password As String, ByVal User As String, _
ByVal NomDataSet As String) As DataSet
' Connexion à un server MySQL
'avec le Driver ODBC 3.51 avec requette qui renvoie un dataset
Dim MyConString As String = _
"DRIVER={MySQL ODBC 3.51 Driver};SERVER="
Server _
";DATABASE="
LaBase
";UID="
User _
";PASSWORD="
Password
";OPTION=3;"
Dim MyODBCConnexion As New OdbcConnection(MyConString)
Try
Dim ds As New DataSet()
Dim cmd As OdbcDataAdapter = New
OdbcDataAdapter(ReqSQL, MyConString)
Dim MyCommand As New OdbcCommand()
Dim MyDataReader As OdbcDataReader
cmd.Fill(ds, NomDataSet)
MyODBCConnexion.Close()
Return ds
Catch MyOdbcException As OdbcException
'
HttpContext.Current.Response.Write(MyOdbcException.ToString)
Catch MyException As Exception
'
HttpContext.Current.Response.Write(MyException.ToString)
End Try
End Function
www.yestar2000iTbulo.comW7Cvs
//對函數的調用
Dim MonDatasetTemp As DataSet = MySQL_Requettes.MyODBCDataset(SQL,
constantes.ODBCBase,
constantes.ODBCServer,
constantes.ODBCPwd,
constantes.ODBCUser,
"MonDataset")
Ⅲ .netframework訪問資料庫變得非常慢
netframework訪問資料庫變得非常慢,網站程序佔用的CPU資源或散宏和內存資源沒有及時釋放,需要每隔一段時間手動重啟網站來釋放資源。您也可以通過切換ASP.NET版本實現程序池資源的回收,無需手動重啟網站。
解決方案
登錄雲虛擬主機管理頁面。
找到待切換版本的Windows操作系統雲虛擬主機,單擊對應操作列下的管理。
在左側導航欄,選擇高級環境設置 > .net版本設置。
在.net版本設置頁面,切換.NET FrameWork版本。
先將.NET FrameWork版本切換為任一其他版本,單擊保存設置衫冊。
等待10分鍾~15分鍾,再將.NET FrameWork版本還原為舊版本,再次單擊保存設置。
查看網站訪問速度是否恢復正常。掘敗
訪問速度恢復正常,問題排查結束
Ⅳ net core 怎麼操作資料庫
NET Core 使用Dapper 操作MySQL 資料庫, .NET Core 使用Dapper。
目前官方沒有出.NET Core MySQL 驅動,但是已經有第三方進行穗告辯改動封裝出.NET Core MySQL Connector 預覽版。
Dapper 也已經出了 .NET Core 預覽版。
Dapper dot net 是一個輕猜缺量型的ORM,但是性能很友賣強大。
有了.NET Core MySQL Connector 我們可以直接使用ADO.NET 操作資料庫。
目前EF Core 暫時不支持MySQL, 本篇主要講解使用Dapper 操作 MySQL。
第三方 MySQL Connector: https://github.com/SapientGuardian/mysql-connector-net-netstandard
Dapper: https://github.com/StackExchange/dapper-dot-net
新建項目
新建一個.NET Core控制台應用程序 NETCoreMySQL
Ⅳ asp.net連接兩個不同的資料庫
正做一個類似的項目,是PROGRESS資料庫和SQLSERVER2000資料庫對接的。渣好要遷移許多表。你的只遷移一個表還是很簡單的。不棗粗過運行一次只能導入一次更新的數據,資料庫時時更新的話得讓它定時執行。
需要建立2個類,分別和這2個資料庫連接。
拿到DB1的連接進行SELECT找到數據,再用DB2的凳梁鎮連接INSERT數據,就完成功能了。
如果數據量大要用分頁代碼,不然一次SELECT的數據緩存里是裝不下的。
Ⅵ asp.net 如何調用資料庫切換js 圖片
這里有一個圖片切換效果
試試看
後台循環輸出就行
Ⅶ vb.net 怎麼操作資料庫
如果樓主熟悉VB6,可以直接在項目中添加ADODB的Com引用,這樣你就可以像VB6那樣操作資料庫了!
另外
.NET
Framework中連接資料庫要用到ADO.NET。如果要操作Access資料庫,要用到System.Data.OleDb命名空間下的許多類。
比如按樓主所說,「我想在textbox1中顯示表一中【一些數據】欄位下的第一個內容」:
'首先導入命名空間
Imports
System.Data
Imports
System.Data.OleDb
'然後在某一個事件處理程序中寫:
Dim
conn
As
New
OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data
Source=資料庫.accdb;Jet
OLEDB:Database
Password=MyDbPassword")
Dim
command
As
New
OleDbCommand("Select
*
From
數據表",
conn)
conn.Open()
'打開資料庫連接
Dim
reader
As
OleDbDataReader
=
command.ExecuteReader()
'執行SQL語句,返回OleDbDataReader
對象
Do
While
reader.Read()
'讀取一條數據
textbox1.Text
+=
reader("一些數據")
&
VbCrLf
Loop
reader.Close()
'關閉OleDbDataReader
conn.Close()
'關閉連接
Ⅷ ado.net快速上手疑問及解答
一含仔、代碼中的問題
1、偽SqlMapper的基類為什麼用抽象類BaseSqlMapper而不用介面?
答:樓豬也知道在IBatis下的SqlMapper的基類就是一個介面ISqlMapper,但是樓豬寫代碼的時候,發現泛型約束在抽象基類里寫一次,在SqlMapper下就不要再寫了,而用介面就必須寫兩遍約束。呵呵,一時偷懶的後果,沒有深刻意識到「針對介面編程」這一條常識,提出這個問題的童鞋明顯可以看出技高樓豬一籌啊,,哈哈,樓豬吸取這個教訓了,本文最後的demo樓豬將BaseSqlMapper統一換成了ISqlMapper介面,請留意。
2、在前台頁面裡面寫SQL語句太多,是不是不太好?
這個問題也很好。在實際的項目中,SQL語句通常都寫在具體的Dao文件中,比如前文demo中提到的PersonDao類。我尺斗們在添加一個Person的時候,示例中是通過view plain to clipboardPRint?
public int Insert(string sqlInsert)
public int Insert(string sqlInsert)
這種形式的方法執行插入的,但是在實際項目中的時候,我們通常都會寫view plain to clipboardprint?
public int Insert(Person model)
public int Insert(Person model)
這種類型的方法執行資料庫插入操作。所以在前台(表現層)寫SQL語句其實是不合理的。再次多多感謝指出代碼問題的童鞋們。如果已經對某些新手造成某些誤導,樓豬在這里要深刻反省和檢討(demo寫的明顯有點隨意和偷懶),在這里,樓豬鄭重提醒,SQL語句的位置請不要模仿demo中這種糟糕的寫法,樓豬也是過來人,因為使用的時候都是放在Dal層xml下的,請務必重視起來。
二、疑問(直接摘錄郵件內容)
1、「資料庫切換貌似沒有是吧.怎樣切換MSSQL。ACC,XML等等呢」?
答:這個應該是說源碼對多種資料庫的支持問題。哦,樓豬還沒有實現。看源碼,Sql Server簡單的基本的CRUD功能已經支持了。如果要擴展支持其他資料庫,模仿SqlServer類里的具體實現即可。樓豬的機器環境上沒有安裝Oracle或者MySQL等資料庫,所以寫完了也不好測試。您如果條件具備,自己可以試著完成它。至於說資料庫的切換,理想狀態的實現莫過於最經典的抽象工廠模式,呵呵,配置文件配合反射就行了。但是樓豬建議您簡單使用偽SqlMapper進行資料庫類型切換。具體操作,其實只要在配置文件appsetting中加一個資料庫類型節點sqlType,配合類里的常用資料庫類型的枚舉即可。
appSettings
add key="db_timeOut" value="5000"/
!--資料庫類型 0 SqlServer 1 Orcale 2 MySql--
add key="sqlType" value="0"/
/appSettings
枚舉如下:
代談困汪碼
namespace AdoNetDataaccess.Mapper
{
public enum SqlEnum
{
Default = 0,
SQLServer = 0,
Oracle = 1,
MySql = 1
}
}
然後,就是一些實例化SqlMapper的過程判斷了,將資料庫切換的問題完全轉移到實例化SqlMapper上來:
代碼
using System;
using System.Collections.Generic;
using System.Configuration;
namespace AdoNetDataAccess.Mapper
{
using AdoNetDataAccess.Core.Contract;
using AdoNetDataAccess.Core.Implement;
#region enum
public enum SqlEnum
{
Default = 0,
SQLServer = 0,
Oracle = 1,
MySql = 1
}
#endregion
public sealed class MapperUtill
{
#region fields
public static string currentSqlKey = "sqlConn";
public static int cmdTimeOut = 15;
private static int sqlType = 0;//資料庫類型 0 SqlServer 1 Orcale 2 MySql
private static readonly object objSync = new object();
private static readonly IDictionarystring, ISqlMapper dictMappers = new Dictionarystring, ISqlMapper();
#endregion
#region constructor and methods
private MapperUtill()
{
}
static MapperUtill()
{
try
{
cmdTimeOut = int.Parse(ConfigurationManager.AppSettings["db_timeOut"]);
}
catch
{
cmdTimeOut = 15;
}
try
{
sqlType = int.Parse(ConfigurationManager.AppSettings["sqlType"]);
}
catch (Exception ex)
{
throw ex;
}
//實例化SqlDbMapper
for (int i = 0; i
ConfigurationManager.ConnectionStrings.Count; i++)
{
string key = ConfigurationManager.ConnectionStrings[i].Name;
string value = ConfigurationManager.ConnectionStrings[i].ConnectionString;
CreateMapper(key, value, cmdTimeOut);
}
}
public static ISqlMapper GetSqlMapper(string key)
{
return MapperUtill.GetMapper(key);
}
public static ISqlMapper GetCurrentSqlMapper()
{
return MapperUtill.GetMapper(currentSqlKey);
}
public static void CreateMapper(string connKey, string sqlConStr, int connTimeOut)
{
IDbOperation operation = null;
switch (sqlType)
{
default:
case 0:
operation = new SqlServer(sqlConStr, connTimeOut);
break;
case 1:
//operation = new Orcale(sqlConStr, connTimeOut);//Orcale 未實現
break;
case 2:
//operation = new MySql(sqlConStr, connTimeOut);//MySql 也沒有實現呢
break;
}
if (operation == null)
{
throw new Exception("您配置的資料庫類型有可能那啥出問題了");
}
SqlMapper mapper = new SqlMapper(operation);
dictMappers.Add(connKey.ToUpper().Trim(), mapper);//不區分大小寫
}
public static ISqlMapper GetMapper(string sqlConKey)
{
if (string.IsNullOrEmpty(sqlConKey))
{
throw new Exception("資料庫連接字元串主鍵為空!");
}
sqlConKey = sqlConKey.ToUpper();//不區分大小寫
ISqlMapper mapper = null;
if (dictMappers.ContainsKey(sqlConKey))
{
mapper = dictMappers[sqlConKey];
}
else
{
throw new Exception(string.Format("沒有{0}所對應的資料庫連接", sqlConKey));
}
return mapper;
}
/// summary
/// 釋放所有
/// /summary
public void Release()
{
foreach (KeyValuePairstring, ISqlMapper kv in dictMappers)
{
SqlMapper mapper = kv.Value as SqlMapper;
if (mapper == null)
{
continue;
}
mapper.CurrentDbOperation.CloseConnection();
}
dictMappers.Clear();
}
#endregion
}
}
必須要注意,這里的資料庫切換方式不是絕對的,您可以按照自己喜歡的習慣的其他方式編程完成切換,樓豬這里只是拋磚而已。
2、「我對ORM不熟悉,想問下您的這個ORM到底是節省了哪部分工作? 我看裡面有大量的反射,這樣是不是非常影響效率?」
首先,樓豬對ORM也不太熟悉。現在實現的這個嚴格來說也根本談不上算是ORM,但是有樓豬自己使用過的兩個ORM的影子。
其次,當前實現的東東不是為了節省哪部分工作而設計的,樓豬的初衷是重讀ado.net經典紅皮書而做的復習筆記。
第三,反射相對於沒有使用反射,當然非常影響效率。需要說明的是,要不要使用反射應該根據實際的項目需要。根據樓豬個人開發經驗,對於大多數程序員要實現的簡單的常見的前後台mis系統,在保證基本需求的情況下,客戶如果對效率沒有意見,用用沒有太大關系,大部分工作就交給伺服器完成去吧,程序員不用做太多工作。但是對於訪問頻繁的大型網站,實時系統或者應對大數據量操作的系統等等,建議不要使用反射,而且可能要重點花精力在數據「裝潢」上面。
最後,如果有童鞋對ORM感興趣,不妨在網上搜搜大牛們的作品,大名鼎鼎的NHibernate,,WebSharp,LINQ等等(這么多ORM,一個一個都要熟悉,源碼也研究不過來啊,建議新手熟練一兩種足矣),也許對您有更多的啟發。如果您自己實現了類似其他流行ORM的主流功能(如自動生成SQL語句或者通過XML配置,緩存,延遲載入等等),並且功能更加強大,用起來更加順手方便的新ORM,呵呵,真誠期待您的功德圓滿那一天早日到來,快點來造福萬千程序員吧。
Ⅸ 三菱變頻器net無法切換
由於參數設置錯誤或網路連接問題。
1、NET功能的切換需要正確設置相枯此鎮關參數,若參數設置錯誤,會導致NET功能無法切換。
2、NET功能需要與其他設備進行網路連接,沒粗若網路連接不穩定或者扒族出現故障,也會導致NET功能無法切換。