错误C2664:' System :: String ^ System :: Data :: Common :: DbDataReader :: GetString(int)' :无法从' const char [12]'转换参数1到' int'

时间:2016-02-28 23:02:39

标签: sql-server visual-c++

我的数据库链接到我的项目,我正在尝试在数据网格视图中查看我的数据库数据。我的数据库是用sql server编写的,我的代码是

          SqlCommand^ myCommand = gcnew SqlCommand("SELECT * FROM CSC 289.Customer WHERE Customer_ID = '" + grid + "';", myCon);
          SqlDataReader^ myReader;

            try {
                 myCon->Open();

                  myReader = myCommand -> ExecuteReader();

                  if (myReader -> Read()){
                      String^ ID = myReader -> GetString("Customer_ID");
                      txtID -> Text = ID;
                      /*String^ NameVal = myReader -> GetString("Customer_Name");
                      txtName -> Text = NameVal;
                      String^ PhoneVal = myReader -> GetString("Customer_Phone");
                      txtPhone -> Text = PhoneVal;
                      String^ EmailVal = myReader -> GetString("Customer_Email");
                      txtEmail -> Text = EmailVal;*/
                  }

             }
             catch (Exception^ ex) {
                 MessageBox::Show(ex->Message);
             }
         }

我尝试运行程序时收到的错误是

错误C2664:' System :: String ^ System :: Data :: Common :: DbDataReader :: GetString(int)' :无法从' const char [12]'转换参数1到' int'

function" System :: Data :: SqlClient :: SqlDataReader :: GetString"无法使用给定的参数列表调用             参数类型是:(const char [12])             对象类型是:System :: Data :: SqlClient :: SqlDataReader ^

我不确定如何解决我的问题,帮助会很棒。

1 个答案:

答案 0 :(得分:0)

正如它在框中所说,GetString需要一个Integer并返回一个字符串。 https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqldatareader.getstring(v=vs.110).aspx

SqlDataReader.GetString方法(Int32)

这是一篇关于如何在c ++中使用数据阅读器的好文章 http://www.digitalcoding.com/Code-Snippets/CPP-CLI/C-CLI-Code-Snippet-Get-Data-From-SqlDataReader.html

正在寻找的正确语法是 C ++

String^ ID = myReader["Customer_ID"]->ToString();

C#语法

String ID = myReader["Customer_ID"].ToString();
相关问题