0
我有一個符合CLS的項目,除了一個變量聲明令我困惑的是如何糾正。如何使公共MySQLDataReader CLS兼容?
我有一個名爲MySQL的類,總結了它看起來像:
public class mysql
implements idisposable
private connection as new mysqlconnection
private command as new mysqlcommand
<CLSCompliant(false)> public reader as mysqldatareader
public sub new(byval query as string)
if connection.state = connectionstate.open then
connection.connectionstring = my.settings.connectionstring
connection.open()
command.connection = connection
command.commandtext = query
end sub
public sub parameters(byval name as string, byval value as string)
command.parameters.addwithvalue(name, value)
end sub
public sub retrieve()
reader = command.executereader()
end sub
public sub send()
command.executenonquery()
end sub
public sub close()
if me.command.connection.state = connectionstate.open then me.command.connection.close
if me.connection.state = connectionstate.open then me.connection.close
me.dispose()
end sub
#region "IDisposable support"
private disposedvalue as boolean
protected overridable sub dispose(disposing as boolean)
if not me.disposedbalue then
if disposing then
#dispose maaged state
end if
connection.dispose()
command.dispose()
reader = nothing
end if
me.disposedvalue = true
end sub
public sub dispose() implement idisposable.dispose
dispose(true)
gc.suppressfinalize(me)
end sub
#end region
end class
用法:
dim sql as new MySQL("SELECT * FROM TABLE WHERE NAME = ?Name")
sql.parameters("?Name", me.textboxusername.text)
call sql.retrieve()
while sql.reader.read
text = sql.reader.getstring(sql.readergetordinal("User_Name")
end while
call sql.close()
公共閱讀器MySqlDataReader將不符合CLS的,我不知道如何糾正問題。我已升級到最新的mysql數據連接器版本。我想知道如果我應該把它變成一個私有變量,並閱讀結果扔了一個函數?
我對以下代碼片段中的大小寫錯誤,拼寫錯誤等表示歉意,我從遠程桌面連接查看時輸入了該值。
這將如何工作檢索我的數據在各種功能? ie:reader.getstring.getordinal(「columnname」)? – Jeff
我delclare由sql作爲新的mysql(「選擇任何」).. mysql.retrieve .. while reader.read ...文字= sql.reader.getstring(sql.reader.getordinal(「列」)) – Jeff
我編輯我最初的問題,包括全班 - 我有這樣設置這種方式來傳遞參數。 – Jeff