を使用して、特定の配列を含むタンパク質が、私のプログラムの背景になってしまう:私はいくつかのテーブルを持っているそれぞれのタンパク質は、アミノ酸(またはAA)の配列から作られここOLEDB
を:tblProInfo(それはに関する一般的な情報が含まれていますタンパク質)、tblOrderAA(特定のタンパク質の配列(AA配列)を含む(それぞれのタンパク質には以前に設定したシリアルナンバーがある))
今、私はそのタンパク質の科学的名称を再現しようとしているユーザーがtextbox1に入れたシーケンスの一部を含んでいます。 1つ以上のタンパク質が、ユーザーがタイプした配列を含む可能性が高い。
ここに私のコードです。私は "構文エラー"を持って、私はもっと間違いがあると確信しています。助けてください!
public void OpenDB()
{
dataConnection = new OleDbConnection();
try
{
dataConnection.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Projects_2012\\Project_Noam\\Access\\myProject.accdb";
dataConnection.Open();
}
catch (Exception e)
{
MessageBox.Show("Error accessing the database: " +
e.Message,
"Errors",
MessageBoxButtons.OK,
MessageBoxIcon.Error);
}
}
private string FromCodonsToProtein(string codons)
{
OpenDB();
int sizePro=0, i,counter=0,serialPro;
string st="",tempst="";
OleDbCommand datacommand = new OleDbCommand();
datacommand.Connection = dataConnection;
datacommand.CommandText = "SELECT tblProInfo.proInfoAAnum, tblProInfo.proInfoSerialNum,tblProInfo.proInfoScienceName FROM tblProInfo";
OleDbDataReader dataReader = datacommand.ExecuteReader();
while(dataReader.Read())
{
sizePro = dataReader.GetInt32(counter);
serialPro= dataReader.GetInt32(counter+1);
counter++;
OleDbCommand cmd= new OleDbCommand();
cmd.Connection = dataConnection;
cmd.CommandText = "SELECT tblOrderAA.orderAACodon1 FROM tblOrderAA"
+"WHERE (((tblOrderAA.orderAASerialPro)='"+serialPro+"'))";
OleDbDataReader rdr = cmd.ExecuteReader();
tempst="";
for (i = 0; i > sizePro; i++)
{
tempst = tempst + rdr.GetString(i);
}
if (tempst.Contains(codons))
{
st = st + " \n" + dataReader.GetString(counter);
}
}
return st;
}
「SQLインジェクション」を確認してください – m0skit0
構文エラーはどこですか? –
構文エラーを修正しました。今、私はこのエラーがあります(理解できない場合は、私は英語に翻訳しました)。次の行で、 '式データ型と一致しない条件.'を実行します:' OleDbDataReader rdr = cmd.ExecuteReader(); ' – Noam650