I have a java code that use a stored procedure for that it is:
ALTER PROCEDURE [dbo].[Search_Rent]
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
select * from SearchRent
END
and SearchRent is a view in sql server
SELECT dbo.Tbl_Software.ID AS SotwareID, dbo.Tbl_Software.UserID_Rent, dbo.Tbl_Software.Name AS SoftwareName, dbo.Tbl_User.Family,
dbo.Tbl_User.Name AS UserName, dbo.Tbl_User.Tel, dbo.Tbl_Software.DataStart, dbo.Tbl_Software.DataFinish, dbo.Tbl_Software.ID_Category
FROM dbo.Tbl_Software INNER JOIN
dbo.Tbl_User ON dbo.Tbl_Software.UserID_Rent = dbo.Tbl_User.ID
and my java code is:
public class frmRented extends javax.swing.JFrame {
/** Creates new form frmRented */
public frmRented() {
initComponents();
MyTools.SetCenterLocation(this);
DataAccess da = new DataAccess();
try {
da.Connect();
//da.rs = da.st.executeQuery("select * from SearchRent");
//da.rs = da.st.executeQuery("{call Search_Rent()}");
CallableStatement cal = da.con.prepareCall("{call Search_Rent()}",ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
da.rs = cal.executeQuery();
da.rs.last();
int rc = da.rs.getRow();
da.rs.beforeFirst();
int cc = 9;
String[] header = {"id", "idc", "name", "preamble", "k ", "s", "d", "a","e"};
String[][] data = new String[rc][cc];
int i = 0;
while (da.rs.next()) {
data[i][0] = da.rs.getString("Tbl_Software.ID");
data[i][1] = da.rs.getString("Tbl_Software.ID_Category");
data[i][2] = da.rs.getString("Tbl_Software.Name");
data[i][3] = da.rs.getString("Tbl_Software.UserID_Rent");
data[i][4] = da.rs.getString("Tbl_User.Name");
data[i][5] = da.rs.getString("Tbl_User.Family");
data[i][6] = da.rs.getString("Tbl_User.Tel");
data[i][7] = da.rs.getString("Tbl_Software.DataStart");
data[i][8] = da.rs.getString("Tbl_Software.DataFinish");
i++;
}
jTable1 = new JTable(data, header);
jScrollPane1.setViewportView(jTable1);
cal.close();
da.Disconnect();
} catch (Exception e) {
System.out.println(e);
}
}
but when I execute this code I have this error:
com.microsoft.sqlserver.jdbc.SQLServerException: The column name Tbl_Sofware.ID is not valid.
How can I solve this error?
Your view is not properly declared. Try to run SELECT statement from view in sole manner, and when you succeed, wrap the resulting statement with view.
OR
you need not specify the table alias while reading values thru reader, replace your code with this in appropriate manner AND you have to refer real column names from your view: