是这样,小弟是超级新手,用的win7 64位的系统,机器上装的VS2008和Oracle 11g,这两个软件都是32的,今天在数据库中随便建了表,想试试如何连接和查询,结果一运行就弹出提示框,vshost.exe已经停止运行,关掉提示框,程序就停止了。代码如下:using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.OracleClient;namespace JustDoIt
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Start ! ");
String conString = "Data Source = WENHAO; User Id = system ; Password = *******;";
String sql = "SELECT STU_ID FROM STUDENT";
OracleConnection conn = new OracleConnection(conString);
conn.Open();
OracleCommand cmd = new OracleCommand(sql, conn);
OracleDataReader myReader = cmd.ExecuteReader();//这行没出错
while (myReader.Read())//到这里就挂掉了
{
Console.WriteLine(myReader.GetInt32(0));
}
myReader.Close();
conn.Close();
Console.ReadKey();
}
}
}逐行运行,发现就在我代码注释的那个地方挂掉了,每次都是弹出那个提示框,崩溃了,搞了一个下午了,没有弄明白,网上这个问题貌似出现的还不多,也没有什么有效的解决办法,各位大大们,救救我吧!!!
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.OracleClient;namespace JustDoIt
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Start ! ");
String conString = "Data Source = WENHAO; User Id = system ; Password = *******;";
String sql = "SELECT STU_ID FROM STUDENT";
OracleConnection conn = new OracleConnection(conString);
conn.Open();
OracleCommand cmd = new OracleCommand(sql, conn);
OracleDataReader myReader = cmd.ExecuteReader();//这行没出错
while (myReader.Read())//到这里就挂掉了
{
Console.WriteLine(myReader.GetInt32(0));
}
myReader.Close();
conn.Close();
Console.ReadKey();
}
}
}逐行运行,发现就在我代码注释的那个地方挂掉了,每次都是弹出那个提示框,崩溃了,搞了一个下午了,没有弄明白,网上这个问题貌似出现的还不多,也没有什么有效的解决办法,各位大大们,救救我吧!!!
myReader.Close();
删除
Oracle 11g R2 Client X64
public static string connectionString = @"Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=" + ProgramInfo.Dbip + ")(PORT=1521))) (CONNECT_DATA=(SERVICE_NAME=" + ProgramInfo.Dbname + ")));User Id=" + ProgramInfo.Username + "; Password=" + ProgramInfo.Password + ";Unicode=True ";
这位大哥说得好像很有道理哦,能麻烦问下怎么把程序编译成32位的吗?
我这里网速不怎么样,下个oracle比较麻烦